Django - 如何使用include()来创建即插即用URL?

时间:2017-08-26 06:38:22

标签: python django

如上所述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()

2 个答案:

答案 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,它将返回此网址下的所有内容。