当用户从Django支持的站点请求页面时,这是系统遵循的算法,以确定要执行的Python代码:

  1. Django确定要使用的根URLconf模块。通常,这是ROOT_URLCONF设置的值,但如果传入 HttpRequest对象具有urlconf 属性(由中间件设置),则将使用其值代替 ROOT_URLCONF设置。
  2. Django加载Python模块并查找变量 urlpatterns。这应该是Python列表django.urls.path() 和/或django.urls.re_path()实例。
  3. Django按顺序遍历每个URL模式,并在匹配请求的URL的第一个模式停止。
  4. 一旦其中一个URL模式匹配,Django就会导入并调用给定的视图,这是一个简单的Python函数(或基于类的视图)。视图传递以下参数:
    • 一个例子HttpRequest
    • 如果匹配的URL模式未返回任何命名组,则正则表达式中的匹配将作为位置参数提供。
    • 关键字参数由路径表达式匹配的任何命名部分组成,由或者 可选kwargs参数中指定的任何参数覆盖 。django.urls.path()django.urls.re_path()
  5. 如果没有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_请求处理相关推荐

  1. struts2请求处理过程源代码分析(1)

    2019独角兽企业重金招聘Python工程师标准>>> 转载自:http://www.see-source.com/ 源码解析网 网上对于struts2请求处理流程的讲解还是比较多的 ...

  2. 面试官:小伙汁,你画的SpringMVC请求处理过程是从网上抄的吧?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Sicimike blog.csdn.net/Bai ...

  3. flask源码学习-路由的注册与请求处理的过程

    Flask源码分析 本文环境python3.5.2,flask-1.0.2. Flask的路由注册 此时编写的脚本内容如下, from flask import Flaskapp = Flask(__ ...

  4. 12月12日学习内容整理:Ajax中的contentType参数,csrf跨域请求处理,serialize方法...

    一.contentType参数 1.用来标识请求的数据格式 2.默认值: "application/x-www-form-urlencoded"   代表是urlencoded编码 ...

  5. Asp.Net构架(Http请求处理流程) - Part.1

    2019独角兽企业重金招聘Python工程师标准>>> 引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何 ...

  6. CakePHP中文手册【翻译】-请求处理组件

    请求处理组件 第1节 介绍 在Cake里,使用请求处理组件来决定关于进来的HTTP请求信息.你可以使用它更好的通知你的controller关于AJAX请求,得到关于远程客户端IP地址,以及请求的内容类 ...

  7. Mongodb 请求处理流程

    视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html ==================================== ...

  8. ASP.NET MVC请求处理管道生命周期的19个关键环节(1-6)

    ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例 ...

  9. 请求处理传入原生的API || 请求处理CharacterEncodingFilter解决乱码问题

    请求处理传入原生的API 请求处理CharacterEncodingFilter解决乱码问题 提交的数据可能有乱码: <!-- 配置一个字符编码的Filter:一定注意:字符编码filter一般 ...

最新文章

  1. (转)Linux 下 查看以及修改文件权限
  2. java实现 k nn算法_数据挖掘(二)——Knn算法的java实现
  3. 2017 Vue.js 2快速入门指南
  4. 虚拟币交易平台开发_虚拟币软件开发未来发展的趋势怎么样?
  5. Py之Beautiful Soup 4.2.0:Beautiful Soup 4.2.0的简介、安装、使用方法详细攻略
  6. Linux运维工程师面试题第三套
  7. 容器源码分析之HashTable(八)
  8. MySQL安装板多少钱_MySQL安装板怎么安装
  9. linux中resize的含义,linux的resize2fs命令
  10. 疑似又一vivoX80新机通过3C质量认证:全系标配80W快充
  11. 用html语言绘制正弦曲线,使用js画图之正弦曲线
  12. MarkDown说明
  13. u盘启动盘 联想服务器TS250 Win Server 2016 下 安装Linux(ubuntu-18.04.1-desktop-amd64)双系统 各种问题总结(2018-11-13)
  14. python个人简历爬取_python爬取简历模板
  15. 自学c语言资料,自学c语言(全套资料).doc
  16. 16代表啥_16代表的爱情恋爱含义16代表什么爱情含义
  17. Starling MovieClip API
  18. 注册百度地图开发者账户创建
  19. 【C语言】BC90小乐乐算多少人被请家长(DAY 5)
  20. 实战HttpClient 接口调用以及获取token 设置请求头

热门文章

  1. 「杂谈」旷视科技新产品监视学生上课不是什么好事儿
  2. 「图像分割模型」编解码结构SegNet
  3. 人脸识别技术商用再加速 安企步履坚定
  4. 谷歌如何通过机器学习实现逼真AR实时自拍效果
  5. 干货丨 一文概览深度学习中的激活函数
  6. 论文作者串通抱团、威胁审稿人,ACM Fellow炮轰「同行评审」作弊
  7. 城市生态的机器人革命
  8. 深度解析:特斯拉的工厂为什么建造得这么快?
  9. 格力入局的数控机床,掌握“核心科技”有多难?
  10. 马斯克的脑机接口能如愿以偿吗?