我最近开始学习django,遇到了一些麻烦,我不知道为什么。
我的问题很简单:每当我尝试使用模板运行主页时,都会引发404错误。
我的文件层次结构如下:
crm
accounts
templates
accounts
dashboard.html
urls.py
views.py
crm
urls.py
在crm / url中,我有
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('accounts.urls'))
然后在帐户/网址中,
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
在视图中,我有
from django.shortcuts import render
from django.http import HttpResponse
def home(request):
return render(request, 'accounts/dashboard.html')
我的dashboard.html只是一个带有标题和h1的基本html文件。
此外,每当我更改
return render(request, 'accounts/dashboard.html')
到
return HttpResponse('home')
在我的home函数中,它决定显示。
答案 0 :(得分:0)
您的dashboard.html
位于文件夹内,因此应像accounts/dashboard.html
一样引用它
相关文档:https://docs.djangoproject.com/en/3.0/intro/tutorial03/#a-shortcut-render
在他们的示例中,他们使用polls/index.html
(从文档中的链接位置向上滚动一点)。它类似于您的accounts/dashboard.html
的位置(两者都应放在子文件夹中)。
Django以与搜索静态文件相同的方式在多个应用程序中查找模板。除了可以“看到”静态文件并使用manage.py collectstatic
复制到单独的文件夹,而模板被“发现”到位并且没有被复制到任何地方。在facg中,如果您正在运行manage.py runserver
,则还会在适当位置发现静态文件,因此逻辑是相同的。
一个区别是可以使用一组不同的加载程序(docs on template loaders)来更改模板加载,但是默认情况下(对于我猜想的大多数项目),这种相似性保持不变。