我有兴趣为每个应用程序提供他们自己的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') ]
经过一些尝试,我得到的是找不到页面。
我错过了什么?
这有一个变化,在这种情况下,我只需要将应用程序导入 root urls.py ,如下所示:
from django.url import path
from folio import views
urlspatterns = [ path('', views.home, name='home') ]
答案 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