Django学习笔记九---003篇---命名空间和url的使⽤⽅式
⼀:namespace(命名空间)
命名空间(namespace):⽤来表⽰标识符的作⽤范围
⼀个标识符可以在多个命名空间中定义,它在不同命名空间中的含义是互不相⼲的。这样,在⼀个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发⽣冲突。
1.1:namespace使⽤原因
如果⼀个项⽬下有多个应⽤,例如:
项⽬:mysite下⾯有polls和text_platform两个应⽤。
每个应⽤下⾯都有对应urls.py⽂件,⽂件冲都有⼀个index/的路径,
那么,Django在反向解析路由的时候,就会出现得到不是我们想要的结果。
例如:把polls/urls.py中的index路径解析到了text_platform/urls.py中,通过views指向了我们不要的页⾯。访问不同URL,反向解析得到相同的path。
虽然我们定义了:name='index',但是,name是没有作⽤域的,
⽽namespace是有作⽤域的。我们定义namespace后,它就只能作⽤在该应⽤下⾯。
例如:
polls应⽤和text_platform应⽤,我们定义了namespace后,那么,就算他们下⾯的urls.py⽂件中有相同的/index/路径,那么,我们反向解析时,也不会指向同⼀个path,⼀定是指向每个index对应的path.
(同理,他们也不会与mysite项⽬下的urls.py⽂件中的index/(假如有的话)指向同⼀个path),
另外注意⼀点,namespace是与include的可选参数,就是说,当出现了,include的时候,就可以使⽤namespace,没有include的时
候,namespace是不能使⽤的。
django怎么学这⼀点与name不同,name是在path中都可以使⽤的。
1.2:namespace的书写格式:
path('应⽤名/’,include(('应⽤名.urls','应⽤名‘),namespace='应⽤名’)注意()的个数,很容易少
写⼀个()的。
例如:
⼆:路由的使⽤⽅式
在模板templates中使⽤路由.
以前讲templates的时候,介绍过render函数。
注意的是,render函数的参数,request,templates名称是必填参数,
context是选填参数。
后续还会继续写关于templates的博客,到时再详细介绍。
三:路由的重定向
重定向包括两种,1,路由的重定向 2,⾃定义视图的重定向。
其中,⾃定义视图的重定向⼜包括3、种⽅式,
分别是:HttpResponseRedirect, HttpResponseRedirectBase 和redirect 代表301和302
后续再详细介绍。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论