学习笔记,仅供参考

参考自:Django打造大型企业官网;URL映射

本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写一下。


视图函数

视图函数一般都写在appviews.py中,并且视图函数的第一个参数永远都是request(一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图函数中,一般是完成逻辑相关的操作。视图函数的返回结果必须是HttpResponseBase对象或者子类的对象。

例如:

def show_book(request):html = "<h2>显示全部书籍</h2>"return HttpResponse(html)

URL映射

URL映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL映射模块会解析请求中的 URL 地址,并将其分派给相应的处理代码。

当我们创建好视图函数后,要与URL进行映射,即用户在浏览器中输入什么url的时候可以请求到这个视图函数。当用户输入某个url,向我们的网站发起请求时,django会从项目的urls.py文件中寻找对应的视图函数。

urls.py文件中有一个urlpatterns变量,django会从这个变量中读取所有的匹配规则。匹配规则需要使用django.urls.path等函数进行包裹,这个函数会根据传入的参数返回URLPattern或者是URLResolver的对象。

例如:

urlpatterns = [path('admin/', admin.site.urls),path('', views.baidu),path('book/', include('book.urls')),
]

现在,我想提出2个疑问。

为什么Django会在urls.py模块而不是其他模块中寻找所有的url呢?

这是因为,在settings.py配置文件中,存在一个ROOT_URLCONF变量,这个变量可以告诉Django去哪里寻找url映射模块,比如,在我的settings.py文件中,ROOT_URLCONF变量是这样设置的:

ROOT_URLCONF = 'newwebsite1.urls'

它表示,Django会在newwebsite1文件夹中的urls.py文件中寻找url。

为什么在我们的urls.py文件中,要用urlpatterns列表包裹所有路由呢,换一个说法,为什么路由放在urlpatterns列表中,才会被找到呢?

这是因为,如果我们设置了urls.py文件(也可以设置其他自定义模块)为URL映射模块,则Django会默认的在urls.py文件中寻找urlpatterns列表,并从列表中寻找url,所以以后我们设置路由时,一定要将其放在urlpatterns列表中。

Django从理论到实战(part7)--关于视图函数与URL映射相关推荐

  1. django目录下的路由系统和视图函数

    一.Django路由系统(url) 1.什么是路由系统 路由系统的本质是URL模式以及要为该URL模式调用的视图函数之间的一个映射表即不同的url路径对应的不同的函数,该路由系统是存放在全局配置文件u ...

  2. Django从理论到实战(part25)--数据库操作

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

  3. Django从理论到实战(part50)--使用模型来处理上传的文件

    学习笔记,仅供参考,有错必纠 文章目录 使用模型来处理上传的文件 `MEDIA_ROOT`和`MEDIA_URL` 限制文件的扩展名 使用模型来处理上传的文件 在定义模型的时候,我们可以给存储文件的字 ...

  4. Django从理论到实战(part47)--ListView类

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 类视图 ListView类 举个例子 Paginator和Page类 Paginator常用属性 Pag ...

  5. Django从理论到实战(part45)--下载CSV文件

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 CSV文件 生成小的CSV文件 将`csv`文件定义成模板 生成大的CSV文件 StreamingHtt ...

  6. Django从理论到实战(part43)--HttpResponse对象

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 HttpResponse对象 常用属性 常用方法 HttpResponse对象 Django服务器接收到 ...

  7. Django从理论到实战(part41)--WSGIRequest对象

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 WSGIRequest对象 WSGIRequest对象常用属性 WSGIRequest对象常用方法 WS ...

  8. Django从理论到实战(part30)--Meta配置

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

  9. Django从理论到实战(part27)--ORM模型的增删改查操作

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

最新文章

  1. Go Web 开发(一)
  2. 年货买了没?大数据告诉你年货买什么!
  3. 基于内容的图像检索CBIR部分数据库和源代码资料
  4. ubuntu之使用sublime text3搭建Python IDE
  5. Laravel 上传图片及多张图片到七牛云
  6. 前端如何发ModelAndView的请求
  7. 读完这个我懂了JNDI
  8. c++ primer打卡(三)
  9. 减治法——生成组合对象
  10. 【数据分析项目实战】篇1:游戏数据分析——新增、付费和用户行为评估
  11. 计算机操作系统安全序列详解,操作系统知识梳理
  12. win10家庭版如何连接远程桌面
  13. java 全角_java字符全角半角转换
  14. 驱动VFD屏幕 / 真空荧光屏 (不完美)
  15. 滚动率、Vintage、WOE、IV、LIFT、PSI、GINI
  16. jsp页面链接下载文件
  17. win10 默认浏览器中找不到谷歌浏览器的解决办法
  18. 免root运行青龙面版和傻妞机器
  19. android 自定义含有滚动选择器的对话框
  20. 体外克隆技术的研究报告

热门文章

  1. armadillo 使用注意 越界不报错
  2. 我心目中未来的计算机200字,我心目中未来的计算机.doc
  3. php7和php8内核有区别吗,不要在PHP7中踩这些坑
  4. 微型计算机启天A5000-B124说明,微型计算机原理及应用知识点总结
  5. android读写文件的,Android读写文件
  6. Mysql导出表结构及表数据 mysqldump用法
  7. 一个表单验证引发的深思!!!
  8. 常用Git指令常用git命令清单
  9. Prometheus Querying Function rate() vs irate()
  10. org.xml.sax.SAXParseException: Content is not allowed in trailing section