Django路由
静态路由
1 | path('路由映射字符串/', views.index) |
动态路由
将参数做到连接里
路由命名传参:
1
path('index/<str:name>/<int:age>/', views.index),
1
re_path(r'^index/(?P<name>[a-z]{3})/(?P<age>\d{1,2})/',views.index ),
1
(?P<id>\w+)/
路由非命名传参:更灵活,但是必须对应参数位置
1
re_path(r'^index/([a-z]{3})/(\d{1,2})/',views.index)
空白符号:
\r \n \v \t \b
路由分发
APP:业务分化,方便团队合作
主路由文件:只做分发
子路由文件:需要我们手动创建,实现视图映射
主路由-》子路由-》分发
路由命名
当路由修改时,如果HTML页面跳转与视图函数重定向使用的是原始的连接内容,那么都需要更改
耦合性太强
现在通过路由反向解析,可以解决这个问题
path(‘’, views, name=)
html:
1
href={% url 'url_name' 'args1' 'args2'... %}
views:
1
2from django.shortcuts import render,redirect,reverse
redirect(reverse('url_name',args=('args1','args2')))
命名空间
在路由文件:子路由
- app_name 全局变量,一般使用app名作为命名空间名
1
href={% url 'app_name:url_name' 'args1' 'args2'... %}
1
2from django.shortcuts import render,redirect,reverse
redirect(reverse('app_name:url_name',args=('args1','args2')))
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com