标签:pat -- ret import spec cut 名称空间 div arch
from app01 import views urlpatterns = [ path(‘admin/‘, admin.site.urls), # # 1路由配置: 路径-----> 视图函数 re_path(r‘^articles/2003/$‘,views.special_case_2003), # special_case_2003(request) re_path(r‘^articles/([0-9]{4})/$‘, views.year_archive), # year_archive(reauest,1999) re_path(r‘^articles/([0-9]{4})/([0-9]{2})/$‘, views.month_archive), # year_archive(reauest,1999,11) ]
from django.shortcuts import render,HttpResponse # HttpResponse 响应对象 def special_case_2003(request): return HttpResponse("special_case_2003") def year_archive(request,year): return HttpResponse(year) def month_archive(request,year,month): return HttpResponse(year+"-"+month)
名称空间
命名空间(英语:Namespace)是表示标识符的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。
由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回
我们在开发项目时,会经常使用name属性反解出URL,当在不同的app的urls中定义相同的name时 需要用到 名称空间。
urlpatterns = [ re_path(r‘^admin/‘, admin.site.urls), # 名称空间 re_path(r"^app01/",include(("app01.urls","app01"))), re_path(r"^app02/",include(("app02.urls","app02"))), ]
app01.urls urlpatterns = [ re_path(r‘^index/‘, views.index,name="index"), ] ---------------------------------------------------------------------- app02.urls urlpatterns = [ re_path(r‘^index/‘, views.index,name="index"), ]
app01.views from django.shortcuts import render,HttpResponse from django.urls import reverse def index(reqeust): return HttpResponse(reverse("app01:index")) ---------------------------------------------------------------------- app02.views from django.shortcuts import render,HttpResponse from django.urls import reverse def index(reqeust): return HttpResponse(reverse("app02:index"))
5 反向解析
标签:pat -- ret import spec cut 名称空间 div arch
原文地址:https://www.cnblogs.com/augustyang/p/11811135.html