orm之路由層
一、簡單配置
1.引數
第一個引數是正則表示式(如果要精準匹配:‘^publish/$’)
第二個引數是檢視函式(不要加括號)
2.有名無名分組
注意有名分組和無名分組不要混用,無名分組必須要按位置傳參
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^publish/[0-9]{4}/$', views.publish),#匹配四位數字 url(r'^publish/(?P<year>[0-9]{4})/(?P<month>[0-9]{4}/)', views.add),#View Code有名分組,會進行傳參,add函式裡,形參變數必須是year,month url(r'^add/\d+/$',views.add),#匹配任意長度的數字 url(r'^flash/([0-9]{4})/([0-9{2}])',views.flash)#進行分組,這是無名分組,分組後會按位置進行傳參,傳到檢視函式views.flash裡 ]
3.反向解析
先在路由層urls命一個名
1)無引數:url(r"^/publish/",views.publish,name='ddd')
2)無名分組:url(r“^publishadd/([0-9]{4})/([0-9]{2})”,views.publish,name='ddd')
3)有名分組:url(r'^publishadd/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})',views.publish,name='ddd')
在模板層:
1)無引數:{% url 'ddd' %}
2)無名分組:{% url 'ddd' 2018 12 %} 在ddd後面直接傳參
3)有名分組:方式1:{% url ‘ddd’ 2018 12 %}按位置傳參也可以
方式2:{% url ‘ddd’ year=2018 month=12 %}
在檢視層:
from django.shortcuts import reverse
在檢視函式裡:
1)無引數:url=reverse(‘ddd’)
2)無名分組:url=reverse('ddd',args=(2018,12))
3)有名分組:url=reverse('ddd',args=(2018,12))還可以
url=reverse('ddd',kwargs={'year':2018,'month':12})
4.路由分發
隨著專案越寫越大,會創建出多個app,app下面會有urls,這時對路由進行分發,可以細分管理好專案。
步驟:
1)在總路由寫相關配置
from django.conf.urls import include
url(r'^blog/',include('blog.urls'))
url(r'^app01/',include('app01.urls'))
2)在不同的app的urls裡配置路由關係
****重點****總路由,不能加結束符$