路由正则匹配
路由层
url.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
#()小括号代表,里面的参数作为形参传递给视图层的函数,views.py需要加上一个形参,[0-9]{3}代表匹配三位数字。
url(r'^test/([0-9]{3}$)',views.test),
url(r'^testadd/$',views.testadd), #^匹配首,dollor匹配尾。
url(r'^$',views.home), # 匹配空,匹配首页
url(r'',views.error) # 匹配404notfound
]
]
下图演示的即无名分组
views.py
网页显示结果:
有名分组
urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^test3/(?P<year>\d+)/(?P<month>\d+)',views.test3),
views.py
注意,这里的形参必须为ulrs.py中所规定的,这里urls.py中规定形参为year,那么这里test3的形参必须为year.month也必须相对应month
def test3(request,year,month):
return HttpResponse(year+month)
注释:有名分组和无名分组支持多个相同类型的传参,但是不支持混用。
反向解析:
步骤一:在urls.py
中给需要反向解析的一个路径一个name,这里设定为add。
注释:前端解析和后端解析没有实质性关联。
后端解析:通过reverse
函数
def test(request):
res = reverse('add') #获取重命名url的真实地址
print(res)
return render(request,'test.html')
>>> res = 'add'
前端解析
<a href="{% url 'add' % }">add</a>
带参解析把我搞崩溃了,先留个链接,过两天有空了,再回头看
https://www.cnblogs.com/liuqingzheng/p/9506212.html