路由层之路由匹配
"""路由你可以看成就是出去ip和port之后的地址"""url()方法 1.第一个参数其实是一个正则表达式 2.一旦第一个参数匹配到了内容直接结束匹配 执行对应的视图函数url(r'^test/$',views.test),无名分组
url(r'^test/\d+/$',views.test),# 正则表达式分组:给正则表达式前后加一个小括号url(r'^test/(\d+)/$',views.test),"""无名分组 将括号内正则表达式匹配到的内容当做位置参数传递给后面的视图函数"""有名分组
正则表达式可以起别名
url(r'^testadd/(?P<id>\d+)/$',views.testadd),"""有名分组 将括号内正则表达式匹配到的内容当做关键字参数传递给后面的视图函数"""是否可以结合使用
url(r'^test1/(\d+)/(?P<id>\d+)/$',views.test1),1.无名有名分组不能混合使用url(r'^test2/(\d+)/(\d+)/$',views.test2),url(r'^test3/(?P<id>\d+)/(?P<id1>\d+)/$',views.test3),2.可以单个重复使用反向解析
当路由频繁变化的时候,HTML界面上的链接地址如何做到动态解析# 1.给路由与视图函数对应关系添加一个别名(名字自己指定 只有不冲突即可)url(r'^index/', views.index,name='index_name'),# 2.根据该别名动态解析出一个结果,该结果可以直接访问到对应的路由 前端 <a href="{% url 'index_name' %}">111</a> 后端 from django.shortcuts import reverse reverse('index_name') ps:redirect括号内也可以直接写别名无名有名反向解析
url(r'^index/(\d+)/', views.index,name='index_name'),后端 reverse('index_name',args=(1,)) # args一般放数据的主键值 只要给个数字即可前端 <a href="{% url 'index_name' 1 %}">111</a> # 只要给个数字即可 url(r'^index/(?P<id>\d+)/', views.index,name='index_name'),后端 reverse('index_name',kwargs={'id':123}) # 只要给个数字即可前端 <a href="{% url 'index_name' id=666 %}">4444</a> # 只要给个数字即可 总结 无名有名都可以使用一种(无名)反向解析的形式内容回顾