首页 > 其他 > 详细

Django的路由系统

时间:2021-06-13 01:29:48      阅读:13      评论:0      收藏:0      [点我收藏+]

用户访问了哪个 URL 就映射到哪个path然后到对应的方法  ,方法处理后,转到新的URL(可以是具体网址也可以是path )

1.单一路由

def test(request):
   pass

urlpatterns = [ path(test/,test), ]

 

 2.正则路由

技术分享图片
 1 #-----传单个值
 2 def edit(request,a1)
 3      pass
 4 
 5 
 6 urlpatterns = [
 7         re_path(edit/(\w+),edit),
 8 ]
 9 
10 
11 a1与(\w+)对应,也可以写多个/隔开就行,接收的时候也要写多个参数,位置严格一一对应。
12 
13 #-----传多个值
14 def edit(request,a1,a2)
15      pass
16 
17 
18 urlpatterns = [
19         re_path(edit/(\w+)/(\w+),edit),
20 ]
21 
22 html传参的时候可以写成
23 <a href="/edit/{{row.id}}">编辑</a>
24 
25 #-----给接收的参数起名字(与方法参数位置可不对应)
26 
27 def edit(request,a1,a2)
28      pass
29 
30 urlpatterns = [
31           re_path(edit/(?P<a2>\w+)/(?P<a1>\w+),edit),
32 ]
33 
34 #-------伪静态
35 
36 def edit(request,a1)
37      pass
38 
39 urlpatterns = [
40           re_path(edit/(?P<a1>\w+).html,edit),
41 ]
42 
43 html传参的时候可以写成
44 <a href="/edit/{{row.id}}.html">编辑</a>
View Code

3.给某个path命名( 反查出他的url,特有,用来做权限)

技术分享图片
 1 from django.urls import    reverse
 2 
 3 path(login/,login,name=n1),
 4 
 5 print(reverse(n1))
 6  7 /login/
 8 
 9 #---有多个值的话(想让生成的url是什么就能设置成什么)
10 
11  re_path(edit/(?P<a2>\w+)/(?P<a1>\w+).html,edit,name=n2),
12 
13 def edit(request,a1,a2):
14     print(reverse(n2,kwargs={a1:11,a2:22 }))
15 16   /edit/22/11.html
17 
18 #---用处:可以在html改变
19 <td><a href="/edit/">编辑</a></td>-->20 <a href="{% url ‘n2‘%}">编辑</a>
21 
22 
23 ---传值:  多个用空格隔开就行
24 <td><a href="/edit_student/{{row.id}}">编辑</a></td>
25 <td><a href="{%url ‘love‘ row.id %}">编辑</a></td>
View Code

 4.路由分发  (协同开发)

一个项目可以有多个app,每个app是一个业务的模块

技术分享图片
新建一个目录app01
from django.urls import path

def login(request):
    return HttpResponse(ok app login)
urlpatterns = [
     path(login/,login),
    ]


#


urlpatterns = [
      path(app01/,include(app01.urls)),
]


#

浏览器:http://127.0.0.1:8000/app01/login/

#客户访问这个URL后先转到app01文件夹,然后include找到里面的urls文件,在里面的urlpatterns内再次进行匹配

输出结果:ok app login
View Code

 

Django的路由系统

原文:https://www.cnblogs.com/liujinmeng/p/14877998.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!