- 1、修改模板
- 2、查看效果
- 3、小结
- 4、练习
本节介绍如何在模板中使用反向路由,并传递参数。 1、修改模板
修改reverseTest1.html页面,增加内容如下:
带位置参数反向路由
{#re_path(r'^(d+)/(d+)/(d+)/$',views.detail3,name='detail3'), #位置参数#}
普通链接
模板中的反向路由:位置参数
关键字参数反向路由
{#re_path(r'^keyword/(?Pd+)/(?Pd+)/(?Pd+)/$',views.detail3,name='detail5'),#}
普通链接
模板中的反向路由:关键字参数
2、查看效果
查看源文件如下:
URL的反向解析,根据配置的URL名称动态生成链接地址,而不是将地址硬编码写死。如果在视图、模板中使用硬编码的链接,在urlconf发生改变时,维护是一件非常麻烦的事情。
- 解决:在做链接时,通过指向urlconf的名称,动态生成链接地址
- 视图:使用django.core.urlresolvers.reverse()函数
- 模板:使用url模板标签
将模板中的硬编码改成使用反向路由来实现
path('getTest1/',views.getTest1,name='getTest1'),
path('getTest2/', views.getTest2,name='getTest2'),
path('getTest3/', views.getTest3,name='getTest3'),
一键一值:test2
一键多值: test3
在图书人物案例中,将模板中的硬编码改成使用反向路由实现。
path("",include(("apps.bh.urls",'bh'),namespace='bh')),
path('',views.get_book_title,name='get_book_title'),
path('',views.get_book_heros,name='get_book_heros'),
path('heros/',views.get_book_heros2,name='get_book_heros2'),



