如上所述here,
include()
函数允许引用其他URLconf。请注意,include()
函数的正则表达式没有$(字符串结尾匹配字符),而是一个尾部斜杠。每当Django遇到include()
时,它都会删除与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf以进行进一步处理。
include()
背后的想法是简化即插即用网址。由于民意调查位于他们自己的URLconf(polls/URLs.py
)中,因此可以将它们放在/polls/
下,/fun_polls/
下,/content/polls/
下,或任何其他路径根下,应用程序仍然有效。
需要澄清第二点(上文), include()
是为了方便即插即用,
对于Django项目中的一个app(webapp
):
webapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
其中,root URLconf指向webapp.urls
,如下所示,
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^webapp/', include('webapp.urls')),
]
here是完整的代码
使用webapp
应用,如何在创建即插即用网址时使用include()
?
答案 0 :(得分:1)
也许在django项目中,你会在其中注册许多应用程序,每个应用程序都有自己的urlconf,在那一刻,使用include()
会使事情变得简单。
您可以为每个应用添加前缀,并使用include()
将所有内容合并到根urlConf中。
每当Django遇到include()时,它就会切断任何部分 URL匹配到该点并将剩余的字符串发送到 包含URLconf以供进一步处理。
include()
工作于import_module()
,您可以在this
答案 1 :(得分:0)
在Django网址中,A B col31,col4HELLO col32,col4TEXT
C X col35,col4DEMO
可让您参考其他应用的网址。
它基本上意味着像这样的东西
include()
urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^webapp/', include('webapp.urls')),
]
webapp.urls.py
现在,只要您致电urlpatterns = [
url(r'^$', views.content),
]
,它就会呈现/webapp/
视图。
即插即用基本上意味着可以调用URL content
。如果您为此/webapp/
指定了view
,它将返回此网址下的所有内容。