[英]In Django, how can I understand include() function?
我已經開始學習 Django,我不確定include()函數是什么意思。
這是mysite/urls.py 。 -項目
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
這是polls/urls.py 。 -項目中的應用程序
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
從 django 文檔中, include()函數描述如下。
每當 Django 遇到 include() 時,它都會切斷與該點匹配的 URL 的任何部分,並將剩余的字符串發送到包含的 URLconf 以進行進一步處理。
我不確定那是什么,剩下的字符串是什么。
在上面的例子中, remining string是什么,被砍掉的url strings 是什么?
例如,從這個 URL:
polls/5/results
網址規則:
url(r'^polls/', include('polls.urls')),
砍掉 URL 的polls/
部分並在polls/
之后發送剩余的字符串,無論它可能是什么,例如(參見這里更多):
5/results/
到投票應用程序的 urls.py 中的 url,然后將根據此文件中定義的 URL 規則將其映射到視圖
每當它遇到任何帶有/polls
的 url 時,它將包括 polls 應用程序的所有 url。
例子:
如果你輸入/polls/hey
然后,一旦它看到/polls
,它就會轉到 polls urls 文件,然后它會搜索:
hey/
匹配那邊。
假設您的 polls/urls.py 中還有一個條目,例如url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
這里的年份是查詢字符串參數。 所以你的網址看起來像
/polls/articles/2007所以在這種情況下/polls/articles/將匹配,2007 將傳遞給 year_archive 方法
在您的示例中,沒有截斷的字符串,URL 只是以polls/
形式返回,但是當您有另一個 url 例如'^new$'
時,該 url 被截斷,與polls/
合並並返回polls/new
,希望這是有道理的。。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.