Django 路由系统(URL配置, URLConf)
URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。
基本格式:
from django.conf.urls import url
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]
# 正则表达式:一个正则表达式字符串
# views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
# 参数:可选的要传递给视图函数的默认参数(字典形式)
# 别名:一个可选的name参数
路由系统 --> urls.py --> 映射(对应关系)
网址或URL 对应 函数
正则表达式 视图函数(处理业务逻辑)
url(r'^blog/$', views.blog),
url(r'blog/\d{4}/\d{1,2}', views.blog), 弊端:获取不到网址里面输入的年份和月份
url(r'blog/(\d{4})/(\d{1,2})', views.blog),
传参数:blog(request, arg1, arg2) ,相当于 调用视图函数时除request参数外,传了两个位置参数
弊端: 参数的顺序要一一对应,不能乱
url(r'blog/(?P<year>\d{4})/(?P<month>\d{1,2})', views.blog),
传参数:blog(request, year=xxxx, month=xx)
inclue 网址/URL 分级处理(路由分发)
url(r'^app01/', include(app01_urls)),
url(r'^app02/', include(app02_urls)),
网址/URL规则命名(反向解析)给URL的正则表达式起别名
所有URL/网址写死的地方都要用反向解析
模板里面:
{% url "名字写在这里"%}
视图里面:
from django.urls import reverse
reverse("名字", args=(1, 2))

浙公网安备 33010602011771号