URL的命名和反向解析
路由系統
1.分組
url(r'^del_publisher/(\d+)', views.del_publisher),
匹配到引數,按照位置引數的方式傳遞給檢視函式 檢視函式需要定義形參接收變數
2.命名分組
url(r'^blog/(?P
匹配到引數,按照關鍵字引數的方式傳遞給檢視函式 檢視函式需要定義關鍵字引數
3.從URL上捕獲的引數都是字串型別
4.include其他的urls.py
from django.conf.urls import url,include urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'app01/',include('app01.urls')), url(r'app02/',include('app02.urls')) ]
5.URL的命名和反向解析 ***
普通url
命名
url(r'^publisher_list/', views.publisher_list, name='publisher'),
使用
檢視中使用:
1.from django.urls import reverse
reverse('publisher') ——》 ‘/app01/publisher_list/’
模板中使用:
{% url 'publisher' %} ——》 ‘/app01/publisher/’
2.使用分組
url(r'^blog/(\d{4})/([1-9]{2})/$', views.blog, name='blog')
檢視中使用
reverse('blog',args=('2018','12')) ‘/blog/2018/12/'
模板中使用
{% url ’blog‘ ’2018‘ ’12‘ %}
3.使用命名分組
url(r'^blog/(?P
檢視中使用
reverse('blog',args=('2018','12')) ‘/blog/2018/12/'
reverse('blog', kwargs={'month': '12', 'year': '2018'})
模板中使用
{% url 'blog' '2018' '12' %} ——》 ‘/blog/2018/12/'
{% url 'blog' year='2018' month='12' %} ——》 ‘/blog/2018/12/'
{% url 'blog' month='12' year='2018' %} ——》 ‘/blog/2018/12/'
6.namespace
url(r'app01/',include('app01.urls',namespace='app01')),
url(r'app02/',include('app02.urls',namespace='app02'))
url(r'^home/$', views.home, name='home'), # app01
檢視:
reverse(’app01:home‘) ——》 /app01/home/
reverse(’app02:home‘) ——》 /app02/home/
模板:
{% url 'app01:home' %} —》 /app01/home/