简述
当一个请求来到时,Django首先会在项目目录下的urls.py下定义的urlpatterns(由Django.urls.path或Django.urls.re_path对象组成的列表)列表中查找路由规则,如果匹配到,Django就会执行与该条规则绑定的views视图函数,并将函数的返回值返回给客户端。如果发现与该条规则绑定的是include,Django就会到include制定的特定App目录下的urls.py中再开始匹配。如果出错或者没有匹配到路由规则,则返回404。
path(form Django.urls import path)
path(route, view, kwargs=None, name=None)
-route 为一个url规则
-view 是该条路由要绑定的views视图函数的名称,此处也可以放置include(”AppName.url”)将该条路由分配到特定App下的urls.py中继续匹配
-kwargs 额外参数,可以传递给views函数,其值必须为一个字典。如果此处定义了数据,那么views函数的参数列表中也要接收该参数
-name url的命名
在url中捕获参数
在url规则中使用·<变量名>`可以捕获到url中的值传递给视图(视图函数参数列表需要有对应接收)
实例 path(“/student/detail/<stu_id>”, include(“student.urls”))
注意此处捕获的值是字符串
路径转换器
使用方法<转换器 : 变量名> 例如<int : stu_id>
常用的转换器
-str 匹配除了‘/’路径分隔符之外的所有字符串
-int 匹配任意整数
-slug 匹配任意acsii字符
-uuid 格式化id
-path 匹配任意非空字符
re_path(route, view, kwargs=None, name=None)
url规则使用正则表达式
与URL重定向相关操作
(from django. import reverse, redirect)
根据url命名获取url
url = reverse(‘UrlName’)
return redirect(url)
App命名(解决多个App当中会出现相同的url命名的问题)
在App的url配置文件中定义app_name = ‘AppName’
如果定义过了AppName那么在重定向的过程中可以使用、
return redirect(reverse(“AppName : UrlName”))
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/17376.html