在前端我们不仅可以通过get请求携带参数的方式向服务端传数据;
https://127.0.0.1/index/?id=1&name=alex
Django也允许通过,path路径的方式向server端传值;
注意事项:按位置,和按关键字路由系统只能用1种,不能混合使用;
1 path 正则无名分组匹配----->视图函数按位置传递参数
按位置传参形参或实参错位会导致数据错乱,所以Django路由分发系统还可以以命名分组的形式匹配URL给视图函数按关键字传参;
1 from django.conf.urls import url,includefrom app1 import views 2 urlpatterns = [ 3 url(r'^index/(P<n1>w+)/(P<n2>w+)/',views.index,name="index"), 4 ] #注意如果在路由系统正则内部定义了关键字n1,n2,视图函数接收参数也必须是 n1,n2; 5 6 7 #在视图函数定义2个关键字参数, 接收 2个正则表达式匹配到的后缀; 8 def index(request,n1,n2): 9 print(n1,n2) #注意必须和 路由系统中的一致 10 return HttpResponse('OK')
2、URL path传值应用
有了动态路由就 可以不用在 url?nid=8这样传值了!
终止符:^edit可以精确限制匹配URL的后缀内容伪静态:url(r′edit/(w+).html可以精确限制匹配URL的后缀内容伪静态:url(r′edit/(w+).html', views.edit) 装作成静态网站的url可以 提高 SEO高权重 百度排名靠前:
url(r'^student_del/(.*).html/',views.student_del), <a href="/student_del/{{row.id}}.html/">删除</a></td>