一、引子
之前我们学习了,urls 路由映射,上回还说了用正则表达式匹配url,今天我们就来说说,给路由启用一个名字,那个这个名字的用途是什么呐?
二、路由对应名称
2.1 普通名称
2.2,出入位置参数 对应的路由名称
2.3 传入关键字参数对应的路由名称
三、获取当前URL
说明:我们用request.path_info ,用于 form action, 这样当URL 改变之后就无需再去修改 前端的的代码
结果
四、反转生成URL
4.1、正常反转生成URL
说明:根据urls中的name反转生成一个url
五、总结
1、re_path(\'^index/\',views.index,name=\'i1\'),re_path(\'^index/(\d+)/(\d+)\',views.index,name=\'i2\'),re_path(\'^index/(?P<nid>\d+)/(?P<uid>\d+)/\',views.index,name=\'i3\'),
2、def func(request,*args,**kwargs):
from django.urls import reverse
url1 = reverse(\'i1\')
url2 = reverse(\'i2\',args=(1,2,))
urls = reverse(\'i3\',kwargs={\'pid\':1,\'nid\':9})
3、xxx.html
{% url \'i1\' %}
{% url \'i2\' 1 2 %}
{% url \'i3\' oid=1 nid=9 %}
4、第2种和第3种方式,可以指定到某个页面中去,但是如果你只需要登录之后还是停留在原来的页面用request.path_info这个功能。
六、路由分发
1.在project \ urls 导入 include,
2.设置转发到对应的APP,
3.在app 下新建 urls, 设置url 路由
4.访问的时候,url 变化
原来:http://127.0.0.1:8000/home/ 后来,http://127.0.0.1:8000/cmdb/home/