URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。
''' urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函数的默认参数(字典形式) 一个可选的name参数 '''
正则字符串参数
1 简单配置
from django.conf.urls import url from . import views urlpatterns = [
url(r'^admin/', admin.site.urls), #系统生成的映射
url(r"^$",views.index), #访问http://127.0.0.1:8000时,调用index视图函数,根目录地址访问 url(r'^articles/2003/$', views.special_case_2003), #表示articles/2003/这个路径映射views模块的special_case_2003函数 url(r'^articles/([0-9]{4})/$', views.year_archive), #表示匹配4个0-9的任意数字 url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail), ]
#注意:上面匹配都加了小括号,这些括号里面的值会当作参数传递到后面的视图函数中
''' NOTE: 1 一旦匹配成功则不再继续 2 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。 3 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。 4 每个正则表达式前面的'r' 是可选的但是建议加上。 一些请求的例子: /articles/2005/3/ 不匹配任何URL 模式,因为列表中的第三个模式要求月份应该是两个数字。 /articles/2003/ 将匹配列表中的第一个模式而不是第二个,因为模式按顺序匹配,第一个会首先测试是否匹配,匹配成功则不再进行匹配。 /articles/2005/03/ 请求将匹配列表中的第三个模式。
Django 将调用函数 views.month_archive(request, '2005', '03')。 按位置传参 '''
#设置项是否开启URL访问地址后面不为/跳转至带有/的路径 APPEND_SLASH=True