URL的命名和反向解析

1. 分组

    url(r'^del_publisher/(\d+)', views.del_publisher),

    匹配到参数,按照位置参数的方式传递给视图函数  视图函数需要定义形参接收变量  

2. 命名分组

    url(r'^blog/(?P<year>\d{4})/[1-9]{2}/$', views.blog)

    匹配到参数,按照关键字参数的方式传递给视图函数  视图函数需要定义关键字参数

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'),

  使用

  视图函数中views 使用

rom django.urls import  reverse

    reverse('publisher')   ——》 ‘/app01/publisher_list/’

  在模板 html中的使用

{% url 'publisher' %}   ——》 ‘/app01/publisher/’

使用分组:

    url(r'^blog/(\d{4})/([1-9]{2})/$', views.blog, name='blog')
    

    视图中使用

    reverse('blog',args=('2018','12'))         ‘/blog/2018/12/'
    

    模板中使用

    {% url  ’blog‘  ’2018‘  ’12‘  %}    

使用命名分组

    url(r'^blog/(?P<year>\d{4})/(?P<month>[1-9]{2})/$', views.blog, name='blog')
  

    视图中使用

    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/

 

posted on 2018-12-05 21:47  KD_131  阅读(253)  评论(0编辑  收藏  举报