您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django中URLconf和include()的协同工作方法

5b51 2022/1/14 8:21:03 python 字数 3593 阅读 474 来源 www.jb51.cc/python

捕获的参数如何和include()协同工作 一个被包含的URLconf接收任何来自parentURLconfs的被捕获的参数,比如:

概述

捕获的参数如何和include()协同工作

一个被包含的URLconf接收任何来自parent URLconfs的被捕获的参数,比如:

# root urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',(r'^(?P<username>\w+)/blog/',include('foo.urls.blog')),)

# foo/urls/blog.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',(r'^$','foo.views.blog_index'),(r'^archive/$','foo.views.blog_archive'),)

在这个例子中,被捕获的 username 变量将传递给被包含的 URLconf,进而传递给那个URLconf中的 每一个 视图函数

注意,这个被捕获的参数 总是 传递到被包含的URLconf中的 每一 行,不管那些行对应的视图是否需要这些参数。 因此,这个技术只有在你确实需要那个被传递的参数的时候才显得有用。
额外的URLconf如何和include()协同工作

相似的,你可以传递额外的URLconf选项到 include(),就像你可以通过字典传递额外的URLconf选项到普通的视图。 当你这样做的时候,被包含URLconf的 每一 行都会收到那些额外的参数。

比如,下面的两个URLconf功能上是相等的。

一个

# urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',(r'^blog/',include('inner'),{'blogid': 3}),)

# inner.py

from django.conf.urls.defaults import *

urlpatterns = patterns('','mysite.views.archive'),(r'^about/$','mysite.views.about'),(r'^RSS/$','mysite.views.RSS'),)

第二个

# urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',include('inner')),'mysite.views.archive','mysite.views.about','mysite.views.RSS',)

这个例子和前面关于被捕获的参数一样(在上一节就解释过这一点),额外的选项将 总是 被传递到被包含的URLconf中的 每一 行,不管那一行对应的视图是否确实作为有效参数接收这些选项,因此,这个技术只有在你确实需要那个被传递的额外参数的时候才显得有用。 因为这个原因,这种技术仅当你确信在涉及到的接受到额外你给出的选项的每个URLconf时有用的才奏效。

总结

以上是编程之家为你收集整理的Django中URLconf和include()的协同工作方法全部内容,希望文章能够帮你解决Django中URLconf和include()的协同工作方法所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶