url的命名和反向解析
静态路由
url(r'^login/', views.login,name='login'),
反向解析ht
模板
{% url 'login' %} ——》 '/app01/login/'
py文件
from django.urls import reverse
reverse('login') ——》 '/app01/login/'
分组路由
位置传参
url(r'^del_publisher/(\d+)/', views.del_publisher,name='del_pub'),
#分组后从url中捕获参数,捕获的参数会按照 位置传参 传递给函数
关键字传参
url(r'^del_publisher/(?P<pk>\d+)/', views.del_publisher),
#分组后从url中捕获参数,捕获的参数会按照 关键字传参 传递给函数
反向解析
模板
{% url 'del_pub' '1' %} ——》 '/app01/del_publisher/1/'
py文件
from django.urls import reverse
reverse('del_pub',args=('1',)) ——》 '/app01/del_publisher/1/'
命令分组 路由
url(r'^del_publisher/(?P<pk>\d+)/', views.del_publisher,name='del_pub'),
反向解析
模板
{% url 'del_pub' '1' %} ——》 '/app01/del_publisher/1/' 位置传参
{% url 'del_pub' pk='1' %} ——》 '/app01/del_publisher/1/' 关键字传参
py文件
from django.urls import reverse
reverse('del_pub',args=('1',)) ——》 '/app01/del_publisher/1/' 位置传参
reverse('del_pub',kwargs={'pk':'1'}) ——》 '/app01/del_publisher/1/' 关键字传参
namespace
多人合作开发解决路径重复问题
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^app01/',include('app01.urls',namespace='app01' )),
url(r'^app02/',include('app02.urls',namespace='app02')),
]
{% url 'app01:del_pub' '1' %}
reverse('app01:del_pub',args=('1',))