(更新时间)2021年4月9日 Django框架 路由命名与reverse反解析

举报
愚公搬代码 发表于 2021/10/19 01:04:03 2021/10/19
【摘要】 1 路由命名 在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如 url(r'^',incl...

1 路由命名

在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。

  1. 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如
url(r'^',include('book.urls',namespace='book'))

  
 
  • 1

命名空间表示,凡是book.urls中定义的路由,均属于namespace指明的book名下。

命名空间的作用:避免不同应用中的路由使用了相同的名字发生冲突,使用命名空间区别开。
2) 在定义普通路由时,可以使用name参数指明路由的名字,如

urlpatterns = [
    url(r'^$',index),
    # 匹配书籍列表信息的URL,调用对应的bookList视图
    url(r'^booklist/$',bookList,name='index'),
    url(r'^testproject/$',views.testproject,name='test'),
]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2 reverse反解析

使用reverse函数,可以根据路由名称,返回具体的路径,如:

from django.core.urlresolvers import reverse
#或者
from django.urls import reverse

def testproject(request):

    return HttpResponse("OK")

# 定义视图:提供书籍列表信息
def bookList(request):

    url = reverse('book:test')
    print(url)
    return HttpResponse('index')

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 对于未指明namespace的,reverse(路由name)
  • 对于指明namespace的,reverse(命名空间namespace:路由name)

文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。

原文链接:codeboy.blog.csdn.net/article/details/115559648

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。