一.url配置
url本质是url与要为该url调用的视图函数之间的映射表
urlpatterns = [正则,视图函数[,别名]]
二.正则表达式
1.匹配原则
django是循环urlpatterns这个列表,一旦匹配到,就不再往下进行匹配
2.分组匹配
把正则进行分组r"^index/([0-9]{4})/([0-9]{2})/" 分组后,视图函数就要用位置参数来接收值,正则捕获的都是字符串格式
3.命名分组匹配
把正则进行分组并命名,r"^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/",命名分组后,传给视图函数的参数就是关键字参数了,需要用对用的year,month形参名来接收参数
4.优化匹配
由于django是循环匹配的,所有多个应用时数据量大匹配的比较慢.就有了分发include模块
url(r"^app1/",include(app1.urls)),先匹配前面的,然后再去app1.urls匹配(需要在每个app中创建urls.py)
三.别名和反向解析
1.别名
url(正则,视图函数,name = "xxx"),name的值就是别名
2.反向解析
html中的反向解析,{% url "xxx" [参数] %},其实就是模板渲染
视图函数中的反向解析,redirect(reverse("别名",[*args]))