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')) ]
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/