nazha对应内容 http://www.cnblogs.com/liwenzhou/p/8271147.htmlhtml
前言: URL配置(URLconf)就像Django所支撑网站的目录,它的本质是URL与要为该URL调用的视图函数之间的映射表前端
URLconf中配置python
基本格式(django1.x版本)正则表达式
from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ]
Django2.0版本格式django
from django.urls import path 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('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ]
参数说明app
Django路由系统匹配URL路径的时候是从上到小按照注册顺序来的函数
django的路由系统只匹配URL路径,不匹配域名,端口和URL参数网站
分组匹配----》至关于给视图函数传位置参数url
分组命名匹配 ----》至关于给视图函数传关键字参数spa
(?P<name>pattern)
其中name为组的名称,pattern为匹配的模式实例:为获取某出版社某年某月出版的书的数量,
# urls.py中 from app01 import views urlpatterns = [ # url(r"^book_amount/([0-9]{4})/([0-9]{2})/$", views.book_list), # 分组匹配 url(r"^book_amount/(?P<year>[0-9]{4})/{?P<month>[0-9]{2}/$", views.book_list) # 分组命名匹配 ]
# views.py中 def book_list(request,year,month): print(year,month) #对于匹配的值能够打印,类型为字符串类型
对于使用分组命名匹配,在views.py中可使用默认参数
def page(request, num="1"): pass
给URL匹配模式器名字
经过名字反向解析
namespace模式
当项目很大,页面不少的时候,项目下urls.py中就会出现混乱,复杂,因此要用namespace模式,来进行分块匹配
from django.conf.urls import url, include from teacherapp import urls as teacherurls urlpatterns = [ url(r"^teacher/", include(teacherurls, namespace="teacher")), # 二级目录 ]