django 2.0 - 包括从应用程序到根URL文件的urls文件

时间:2018-01-26 02:52:00

标签: python django url

我有兴趣为每个应用程序提供他们自己的urls.py文件,然后使用include django函数将它们包含在root urls.py文件中,如此include('myapp.urls')

这里的所有内容都遵循django教程:enter link description here

所以,在 root urls.py 中就是这样:

from django.url import include, path
urlpatterns = [ path('folio/', include('folio.urls')) ]

现在在对开页urls.py 中,它如下所示:

from django.urls import path
from . import views
urlpatterns = [ path('', views.home, name='home') ]

经过一些尝试,我得到的是找不到页面。

enter image description here

我错过了什么?

这有一个变化,在这种情况下,我只需要将应用程序导入 root urls.py ,如下所示:

from django.url import path
from folio import views
urlspatterns = [ path('', views.home, name='home') ]

1 个答案:

答案 0 :(得分:2)

页面错误非常清楚。根据您的根网址'/'www.example.com/,您的任何视图中都找不到网址格式。由于您的网址仅包含admin/folio/。不是' /'已注册。

但根据您的解决方法,您必须将网址映射到特定视图

在您的情况下,映射folio.views.home。您可能需要创建一个主视图以将base.html呈现为主页。

<强> urls.py

from django.url import include, path
from main.views import home # main is a master app that renders index or home page.

urlpatterns = [
    path('', home, name="index"),
    path('folio/', include('folio.urls'))
]

<强> APP_NAME / views.py

 def home(request):
     return render(request, 'main/base.html', {})

我还鼓励在urlpatterns添加此app_name = 'folio'之前在您的folio.urls.py中添加应用名称空间。因此,您可以使用{{1}中的此网址语法导航到您的作品集应用主页模板。

主要/模板/主/ base.html文件

main/templates/main/base.html