django.urls path django.conf.urls url
path与url是两个不同的模块,效果都是响应返回页面, path调用的是python第三方模块或框架,而url则是自定义的模块,如Views下的def函数对应你url中的参数值.
例如:
-
url(r'^login',views.login),
-
def login(request):
-
return render(request,'login.html')
————————————————以后原链接: 点击打开链接——————————
url路由基础
1、在settings.py文件中有一个ROOT_URLCONF设置,设置的是在访问网址时通过哪一个url文件去匹配所请求的网址
2、path参数的使用方法path('blog/<str:string>/') 简单了很多,就是尖括号,前边是str代表参数的类型,后面代表参数的名称
path参数类型:
捕获url中的参数需要用到尖括号<> 指定尖括号中的值类型比如<int:a><str:link>这个转换器还有许多类型比如:
int 匹配0和正整数
str 匹配任何空字符串但不包括/
slug 可理解为注释 匹配任何ascii码包括连接线和下划线
uuid 匹配一个uuid对象(该对象必须包括破折号—,所有字母必须小写)
path 匹配所有的字符串 包括/(意思就是path前边和后边的所有)
3、url或者re_path要复杂一些 (r'^blog/(?P<num>[0-9]{4})/$') 首先需要开始符^和结尾符$,参数匹配一个 ()就是一个匹配参数,
(?P<匹配的字段名>正则表达式)
4、进行匹配是不包括get或者post请求方式的参数及域名比如www.qq.com/blog?num=1并不会匹配?后边的字符
5、可以给request参数设置一个默认值,最常见的分页url,比如
urlpatterns=[
url(r'^page/$',views.page),
url(r'^page(?P<num>[0-9]+)$',views.page)
]
#views
def page(request,num='1'):
pass
6、自定义错误页面关键字handler400=blog.views.page_no_find
#urls.py
......
handler400=blog.views.page_no_find