Django的url控制器
一 url配置
URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。也就是url里面创建路径后,必须在视图里面有对应的函数或者类来执行操作.
基本格式(版本1)
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]
from django.conf.urls import url from django.contrib import admin #从app01中引入views from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/', views.login,name='login'), url(r'^index/', views.index,name='index'), url(r'^home/', views.home,name='home'), ]
注意:
Django 2.0版本中的路由系统已经替换成下面的写法,但是django2.0是向下兼容1.x版本的语法的(官方文档):
如果只是简单的(路径-->views.函数名-->别名)这样的,和版本1.1是一样的,如果路径后面要加正则参数,需要首先引入from django.urls import path_re,然后将前面的path换成path_re之后才能加正则参数
from django.urls import path,path_re urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path_re('articles/(\d)/', views.article_detail), ]
参数说明
- 正则表达式:一个正则表达式字符串
- views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
- 参数:可选的要传递给视图函数的默认参数(字典形式)
- 别名:一个可选的name参数
注意事项
- 在创建路径的时候,首先需要引入views如from 应用名称 import views
- urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续。
- 若要从URL中捕获一个值,只需要在它周围放置一对圆括号(分组匹配)。
- 不需要添加一个前导的反斜杠(也就是写在正则最前面的那个/),因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。
- 每个正则表达式前面的'r' 是可选的但是建议加上。
- ^articles& 以什么结尾,以什么开头,严格限制路径
二.分组命名匹配