django 路由配置,请简述Django的URL路由流程
什么是路由
给定的URL在定义、转换、传递参数、命名之后,寻找对应处理函数的过程就是将URL与处理函数关联起来的过程。
Django的路由配置
在settings.py文件中,ROOT_URLCONF变量指定全局路由文件名。也就是项目的入口路由文件。
ROOT_URLCONF= project name.urls
在urls.py文件中,urlpatterns变量用于表示路由。该变量为列表类型,其元素由path()或re_path()组成。
Path()处理字符串路由。Re_path()处理正则表达式路由。
Django的路由流程
1.在全局路由文件中找到urlpatterns变量。
2.按照顺序,逐个匹配urlpatterns中的元素。
3.找到第一个匹配的元素后,将停止搜索,并根据匹配结果执行处理功能。
4.如果没有找到匹配,或者发生异常。Django会处理这个错误。
注意:Django路由不考虑HTTP请求模式,只根据URL路由。只要URL相同,POST和GET都会指向同一个处理函数。但是在处理函数之前,可以使用decorators进行基本的判断。
from django . views . decorators . httpimportrequire _ http _ methods
@require_http_methods([GET , POST])
定义索引(请求):
通过相关推荐:《Python视频教程》
路由函数path()
函数path()有四个参数;两个必需的参数:route和view;两个可选参数:kwargs和name。
Route:URL匹配模式,Django响应请求时,会从urlpatterns的第一项开始根据Route匹配元素。
视图:处理函数的名称。当Django找到匹配的模式时,它将调用这个处理函数并传入一个HttpRequest对象。
Kwargs:任何关键字参数都可以作为字典传递给目标处理函数。
名称:命名URL模式。
route的三种格式
1.精确的字符串格式,类似于:articles/2003/
一个精确的URL匹配一个处理函数,它适合于响应静态URL。
2.Django的转换格式类似于:articles/int3360year/
URL模板在匹配URL时,获取其中的一批变量,并将它们作为参数传递给处理函数。
3.正则表达式格式。类似于:articles/?Pyear[0-9]{4}/
利用正则表达式丰富的语法,可以表示一种URL(不是一种),可以提取变量作为处理函数的参数。
view的两种类型
1.处理功能。
2.include()函数。包含其它路由信息,分段的路径组合在一起形成一条总路径。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。