【发布时间】:2018-05-21 11:22:22
【问题描述】:
我一直在为此烦恼,对使用 Django 进行 Web 开发是新手,而且我从未在 PyCharm 中设置过 Django 项目。它是 Django v2.0 和 PyCharm 2017.3。
我有一个包含两个应用程序的基本项目,例如,让我们调用一个 Test 和一个 TestProj。 Test是settings.py所在站点的核心,TestProj是我要添加模板的地方。
Test urls.py 指向 TestProj urls.py,当被请求时,它会向站点的根 url 提供一个 html 文件。此内容位于另一个名为 Test 的文件夹中,该文件夹位于 TestProj 的模板文件夹中
目录结构大致如下:
Test >
settings.py etc
TestProj >
templates >
Test >
index.html
header.html
other python files are here!
index.html 文件可以正常使用,但是当我尝试使用 Django 模板链接另一个 html 文件时会出现问题。这是 index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<div>
{% block content %}
{% endblock %}
</div>
</body>
</html>
这是位于同一模板目录中的标头 html:
{% extends 'Test/index.html' %}
{% block content %}
<p>Hello World</p>
{% endblock %}
index.html 正常提供,但出于某种原因,无论我做什么 index.html 中的 Django {% block content %} 似乎没有评估。因此,我的 index.html 在使用 Pycharm 在浏览器中提供时,有一个空的正文而不是 Hello World。
模板中的 Test 文件夹在 PyCharm 中被标记为模板文件夹,所以我不明白为什么会这样。我还在 PyCharm 设置中选择了 Django 作为模板语言,我尝试重新安装 PyCharm。根据我的知识,settings.py 模板也正确配置如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'TestProj/templates/Test')]
,
'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',
],
},
},
]
任何帮助将不胜感激!
【问题讨论】:
标签: python html django templates pycharm