Django从理论到实战(part7)--关于视图函数与URL映射
学习笔记,仅供参考
参考自:Django打造大型企业官网;URL映射
本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写一下。
视图函数
视图函数一般都写在app
的views.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映射相关推荐
- django目录下的路由系统和视图函数
一.Django路由系统(url) 1.什么是路由系统 路由系统的本质是URL模式以及要为该URL模式调用的视图函数之间的一个映射表即不同的url路径对应的不同的函数,该路由系统是存放在全局配置文件u ...
- Django从理论到实战(part25)--数据库操作
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
- Django从理论到实战(part50)--使用模型来处理上传的文件
学习笔记,仅供参考,有错必纠 文章目录 使用模型来处理上传的文件 `MEDIA_ROOT`和`MEDIA_URL` 限制文件的扩展名 使用模型来处理上传的文件 在定义模型的时候,我们可以给存储文件的字 ...
- Django从理论到实战(part47)--ListView类
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 类视图 ListView类 举个例子 Paginator和Page类 Paginator常用属性 Pag ...
- Django从理论到实战(part45)--下载CSV文件
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 CSV文件 生成小的CSV文件 将`csv`文件定义成模板 生成大的CSV文件 StreamingHtt ...
- Django从理论到实战(part43)--HttpResponse对象
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 HttpResponse对象 常用属性 常用方法 HttpResponse对象 Django服务器接收到 ...
- Django从理论到实战(part41)--WSGIRequest对象
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 WSGIRequest对象 WSGIRequest对象常用属性 WSGIRequest对象常用方法 WS ...
- Django从理论到实战(part30)--Meta配置
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
- Django从理论到实战(part27)--ORM模型的增删改查操作
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
最新文章
- Go Web 开发(一)
- 年货买了没?大数据告诉你年货买什么!
- 基于内容的图像检索CBIR部分数据库和源代码资料
- ubuntu之使用sublime text3搭建Python IDE
- Laravel 上传图片及多张图片到七牛云
- 前端如何发ModelAndView的请求
- 读完这个我懂了JNDI
- c++ primer打卡(三)
- 减治法——生成组合对象
- 【数据分析项目实战】篇1:游戏数据分析——新增、付费和用户行为评估
- 计算机操作系统安全序列详解,操作系统知识梳理
- win10家庭版如何连接远程桌面
- java 全角_java字符全角半角转换
- 驱动VFD屏幕 / 真空荧光屏 (不完美)
- 滚动率、Vintage、WOE、IV、LIFT、PSI、GINI
- jsp页面链接下载文件
- win10 默认浏览器中找不到谷歌浏览器的解决办法
- 免root运行青龙面版和傻妞机器
- android 自定义含有滚动选择器的对话框
- 体外克隆技术的研究报告
热门文章
- armadillo 使用注意 越界不报错
- 我心目中未来的计算机200字,我心目中未来的计算机.doc
- php7和php8内核有区别吗,不要在PHP7中踩这些坑
- 微型计算机启天A5000-B124说明,微型计算机原理及应用知识点总结
- android读写文件的,Android读写文件
- Mysql导出表结构及表数据 mysqldump用法
- 一个表单验证引发的深思!!!
- 常用Git指令常用git命令清单
- Prometheus Querying Function rate() vs irate()
- org.xml.sax.SAXParseException: Content is not allowed in trailing section