1. 程式人生 > >URL的命名和反向解析

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的命名和反向解析 ***

  1. 普通url

    1. 命名

      url(r'^publisher_list/', views.publisher_list, name='publisher'),
    2. 使用

      檢視中使用:

      ​ 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/