码迷,mamicode.com
首页 > 其他好文 > 详细

命名空间 namespace

时间:2018-06-04 22:24:39      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:return   导致   开发项目   app   name   TE   div   turn   namespace   

 

由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回

我们在开发项目时,会经常使用name属性反解出URL,当不小心定义相同的name时,可能会导致URL反解错误,为了避免这种事情发生,引入了命名空间
 
 
使用Django提供namespace参数
 
from django.conf.urls import url,include
#将视图包含进来,并使用命名空间
urlpatterns = [
    url(r‘^aaa‘, include("app01.urls"),namespace=‘aaa‘)),
    url(r‘^bbb‘, include("app02.urls"),namespace=‘bbb‘)),
]

#创建app01视图
from django.conf.urls import url from app01 import views app_name = "app01" urlpatterns = [ url(r‘aaa/$‘, views.aaa, name="index"), ]
def aaa(request):
    return HttpResponse(reverse("app01:index"))
#创建app02视图,使他们拥有同样的name属性
from django.conf.urls import url from app01 import views app_name = "app02" urlpatterns = [ url(r‘aaa/$‘, views.aaa, name="index"), ]
def aaa(request):
    return HttpResponse(reverse("app02:index"))

输出结果
#http://127.0.0.1/aaa/aaa/
# 结果:
# /aaaaaa/

#http://127.0.0.1/bbb/aaa/
# 结果: # /bbbaaa/

命名空间 namespace

标签:return   导致   开发项目   app   name   TE   div   turn   namespace   

原文地址:https://www.cnblogs.com/airapple/p/9135762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!