Django中URLconf和include()的協(xié)同工作方法
捕獲的參數(shù)如何和include()協(xié)同工作
一個被包含的URLconf接收任何來自parent URLconfs的被捕獲的參數(shù),比如:
# 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中的 每一個 視圖函數(shù)。
注意,這個被捕獲的參數(shù) 總是 傳遞到被包含的URLconf中的 每一 行,不管那些行對應的視圖是否需要這些參數(shù)。 因此,這個技術只有在你確實需要那個被傳遞的參數(shù)的時候才顯得有用。
額外的URLconf如何和include()協(xié)同工作
相似的,你可以傳遞額外的URLconf選項到 include() , 就像你可以通過字典傳遞額外的URLconf選項到普通的視圖。 當你這樣做的時候,被包含URLconf的 每一 行都會收到那些額外的參數(shù)。
比如,下面的兩個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('',
(r'^archive/$', 'mysite.views.archive'),
(r'^about/$', 'mysite.views.about'),
(r'^rss/$', 'mysite.views.rss'),
)
第二個
# urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^blog/', include('inner')),
)
# inner.py
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^archive/$', 'mysite.views.archive', {'blogid': 3}),
(r'^about/$', 'mysite.views.about', {'blogid': 3}),
(r'^rss/$', 'mysite.views.rss', {'blogid': 3}),
)
這個例子和前面關于被捕獲的參數(shù)一樣(在上一節(jié)就解釋過這一點),額外的選項將 總是 被傳遞到被包含的URLconf中的 每一 行,不管那一行對應的視圖是否確實作為有效參數(shù)接收這些選項,因此,這個技術只有在你確實需要那個被傳遞的額外參數(shù)的時候才顯得有用。 因為這個原因,這種技術僅當你確信在涉及到的接受到額外你給出的選項的每個URLconf時有用的才奏效。
相關文章
python如何獲取apk的packagename和activity
這篇文章主要介紹了python如何獲取apk的packagename和activity,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01
python3 selenium自動化 frame表單嵌套的切換方法
今天小編就為大家分享一篇python3 selenium自動化 frame表單嵌套的切換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08

