Django模板和版本
我在网上搜索了Django的最新版本,在Django官方文档中是2.0.6。但官方页面上给出的版本只有2.0、2.1、1.9等。因此我想知道2.0的文档是否适用于所有版本,如2.0.5、2.0.6、2.0.7等,因为没有2.0.6版本的文档。但是2.0版又是不同的,它可以用pip安装 早些时候,我使用的是Django 2.0.6,模板有问题。我首先以web的名字开始了我的项目,然后制作了一个名为music的应用程序。在里面,我制作了一个模板目录,在另一个音乐文件夹中,我把index.html文件放在里面。所以总的来说,这条路是这样的 web/music/template/music/index.html。现在我正在使用django.shortcuts中的render 我在音乐目录的view.py文件中将index.html文件引用为music/index.html。但它无法找到文件,只是显示错误Django模板和版本,django,templates,Django,Templates,我在网上搜索了Django的最新版本,在Django官方文档中是2.0.6。但官方页面上给出的版本只有2.0、2.1、1.9等。因此我想知道2.0的文档是否适用于所有版本,如2.0.5、2.0.6、2.0.7等,因为没有2.0.6版本的文档。但是2.0版又是不同的,它可以用pip安装 早些时候,我使用的是Django 2.0.6,模板有问题。我首先以web的名字开始了我的项目,然后制作了一个名为music的应用程序。在里面,我制作了一个模板目录,在另一个音乐文件夹中,我把index.html文件
我认为这可能是版本问题。您是否已将模板目录添加到
设置文件中
作为:
假设您试图覆盖名为blog的第三方应用程序的模板,该应用程序提供了blog/post.html和blog/list.html模板。项目的相关设置如下所示:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
INSTALLED_APPS = [ ..., 'blog', ..., ]
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, ... }, ]
如果使用默认项目模板创建项目,则模板设置和基本目录将已存在。需要修改的设置是DIRS
这些设置假定项目根目录中有templatesdirectory。要覆盖博客应用程序的模板,请在templates目录中创建一个文件夹,然后将模板文件添加到该文件夹:
templates/
blog/
list.html
post.html
模板加载器首先在DIRS目录中查找模板。当blog应用程序中的视图请求blog/post.html和blog/list.htmltemplates时,加载程序将返回您刚刚创建的文件
因此,为了添加您自己的模板文件夹,您应该修改DIRS
设置 您的文件夹结构应如下所示:
music/ <-- higher level folder
|-- myproject/ <-- django project folder
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
|-- templates <-- Templates folder
| |-- music
| | |-- index.html
|-- static <-- Static folder
| |-- css
| |-- js
| |-- images
| +-- manage.py
+-- venv/ <-- virtual environment folder
音乐/否。我需要这样做吗。怎么做?为什么你把myproject文件夹包括了3次。它应该只来两次。一个是项目,另一个是应用程序或主页,但在官方文档中提到在我们的应用程序中创建一个模板文件夹,这是文档中的投票,这里是音乐。在这个文件夹中创建另一个音乐文件夹,并将index.html放在其中。因此,整个路径变成project/app/template/app/index.html。我们必须将其引用为app/index.html,因为django默认看到模板文件夹。此外,我们不需要对设置进行任何更改。文档中没有关于settings.py文件中任何更改的内容。你能解释一下区别吗?它不像project/app/template/app/index.html。你的模板文件夹应该在路径music/templates/music/index.html中,这里第一个音乐是你的项目/templates/app/index.html。应用程序和模板应位于项目文件夹中。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")], <-- add this line
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
def index(request):
return render(request, "music/index.html", ) <-- Dont forget this here music is your folder's name