django_2.0_请求处理
当用户从Django支持的站点请求页面时,这是系统遵循的算法,以确定要执行的Python代码:
- Django确定要使用的根URLconf模块。通常,这是
ROOT_URLCONF
设置的值,但如果传入HttpRequest
对象具有urlconf
属性(由中间件设置),则将使用其值代替ROOT_URLCONF
设置。 - Django加载Python模块并查找变量
urlpatterns
。这应该是Python列表django.urls.path()
和/或django.urls.re_path()
实例。 - Django按顺序遍历每个URL模式,并在匹配请求的URL的第一个模式停止。
- 一旦其中一个URL模式匹配,Django就会导入并调用给定的视图,这是一个简单的Python函数(或基于类的视图)。视图传递以下参数:
- 一个例子
HttpRequest
。 - 如果匹配的URL模式未返回任何命名组,则正则表达式中的匹配将作为位置参数提供。
- 关键字参数由路径表达式匹配的任何命名部分组成,由或者 可选
kwargs
参数中指定的任何参数覆盖 。django.urls.path()
django.urls.re_path()
- 一个例子
- 如果没有URL模式匹配,或者在此过程中的任何点期间引发异常,Django将调用适当的错误处理视图。请参阅下面的错误处理
示例:
这是一个示例URLconf:
from django.urls import pathfrom . import viewsurlpatterns = [path('articles/2003/', views.special_case_2003),path('articles/<int:year>/', views.year_archive),path('articles/<int:year>/<int:month>/', views.month_archive),path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ]
笔记:
- 要从URL捕获值,请使用尖括号。
- 捕获的值可以选择包括转换器类型。例如,用于
<int:name>
捕获整数参数。如果未包含转换器/
,则匹配除字符之外的任何字符串。 - 没有必要添加前导斜杠,因为每个URL都有。例如,它
articles
不是/articles
。
示例请求:
- 请求
/articles/2005/03/
与列表中的第三个条目匹配。Django会调用该函数 。views.month_archive(request, year=2005, month=3)
/articles/2003/
将匹配列表中的第一个模式,而不是第二个模式,因为模式是按顺序测试的,第一个是第一个要通过的测试。随意利用订单插入这样的特殊情况。在这里,Django会调用该函数views.special_case_2003(request)
/articles/2003
不匹配任何这些模式,因为每个模式都要求URL以斜杠结尾。/articles/2003/03/building-a-django-site/
将匹配最终模式。Django会调用该函数 。views.article_detail(request, year=2003, month=3,slug="building-a-django-site")
转载于:https://www.cnblogs.com/Xingtxx/p/10843472.html
django_2.0_请求处理相关推荐
- struts2请求处理过程源代码分析(1)
2019独角兽企业重金招聘Python工程师标准>>> 转载自:http://www.see-source.com/ 源码解析网 网上对于struts2请求处理流程的讲解还是比较多的 ...
- 面试官:小伙汁,你画的SpringMVC请求处理过程是从网上抄的吧?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Sicimike blog.csdn.net/Bai ...
- flask源码学习-路由的注册与请求处理的过程
Flask源码分析 本文环境python3.5.2,flask-1.0.2. Flask的路由注册 此时编写的脚本内容如下, from flask import Flaskapp = Flask(__ ...
- 12月12日学习内容整理:Ajax中的contentType参数,csrf跨域请求处理,serialize方法...
一.contentType参数 1.用来标识请求的数据格式 2.默认值: "application/x-www-form-urlencoded" 代表是urlencoded编码 ...
- Asp.Net构架(Http请求处理流程) - Part.1
2019独角兽企业重金招聘Python工程师标准>>> 引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何 ...
- CakePHP中文手册【翻译】-请求处理组件
请求处理组件 第1节 介绍 在Cake里,使用请求处理组件来决定关于进来的HTTP请求信息.你可以使用它更好的通知你的controller关于AJAX请求,得到关于远程客户端IP地址,以及请求的内容类 ...
- Mongodb 请求处理流程
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html ==================================== ...
- ASP.NET MVC请求处理管道生命周期的19个关键环节(1-6)
ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例 ...
- 请求处理传入原生的API || 请求处理CharacterEncodingFilter解决乱码问题
请求处理传入原生的API 请求处理CharacterEncodingFilter解决乱码问题 提交的数据可能有乱码: <!-- 配置一个字符编码的Filter:一定注意:字符编码filter一般 ...
最新文章
- (转)Linux 下 查看以及修改文件权限
- java实现 k nn算法_数据挖掘(二)——Knn算法的java实现
- 2017 Vue.js 2快速入门指南
- 虚拟币交易平台开发_虚拟币软件开发未来发展的趋势怎么样?
- Py之Beautiful Soup 4.2.0:Beautiful Soup 4.2.0的简介、安装、使用方法详细攻略
- Linux运维工程师面试题第三套
- 容器源码分析之HashTable(八)
- MySQL安装板多少钱_MySQL安装板怎么安装
- linux中resize的含义,linux的resize2fs命令
- 疑似又一vivoX80新机通过3C质量认证:全系标配80W快充
- 用html语言绘制正弦曲线,使用js画图之正弦曲线
- MarkDown说明
- u盘启动盘 联想服务器TS250 Win Server 2016 下 安装Linux(ubuntu-18.04.1-desktop-amd64)双系统 各种问题总结(2018-11-13)
- python个人简历爬取_python爬取简历模板
- 自学c语言资料,自学c语言(全套资料).doc
- 16代表啥_16代表的爱情恋爱含义16代表什么爱情含义
- Starling MovieClip API
- 注册百度地图开发者账户创建
- 【C语言】BC90小乐乐算多少人被请家长(DAY 5)
- 实战HttpClient 接口调用以及获取token 设置请求头