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/

猜你喜欢

转载自www.cnblogs.com/kenD/p/10073316.html