簡體   English   中英

在 Django 中,我如何理解 include() 函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM