带有 Python 2.7.6 和 Virtualenv 12.0.7 (OSX10,10.2) 的 Django 1.7.6 - 模板呈现时出现模板语法错误

Django 1.7.6 with Python 2.7.6 and Virtualenv 12.0.7 (OSX10,10.2) - Templates are rendering with a template syntax error

我对 Python 有所了解,但肯定不是专家 我目前正在学习如何在 Django 1.7 中进行开发。我已经完成了 Djangos 教程,正在开始我的第一个项目。

该项目只是试图创建一个静态主页(在这个阶段),但我想使用 html 模板语言在所有最终网站页面中获得一致的外观和感觉。

为了解决这个问题,我在项目根文件夹下的模板文件夹中创建了一个名为 base.html 的文件。此文件包含:

<!DOCTYPE html>
    <html>
        <head lang="en">
            <meta charset="UTF-8">
            <title>(% block pagetitle %}page tile here{% endblock %}</title>
        </head>
        <body>
            <div class="container">
                {% block contents %}Page contents{% endblock %}
            </div>
    </body>
</html>

我还创建了一个名为 psges 的应用程序,我在其中创建了一个名为 templates 的文件夹以及另一个名为 pages 的文件夹。在此文件夹中,我创建了名为 index.html 的文件,其中包含:

(% extends 'base.html' %}

{% block pagetitle %}
Alex Pittendreigh
(% endblock %}

{% block contents %}
<h1>Welcome</h1>
<p>Cras justo odio, dapibus. Fusce dapibus, tellus ac cursus commodo,</p>
{% endblock %}

是的,我知道,基本的东西,但我想在添加样式之前获得基本功能。

我已经创建了 TEMPLATE_DIRS 条目并在站点 settings.py 文件中添加了应用程序,还创建了我的路线和视图。

我执行了 manage.py 检查命令,它报告没有代码错误。

最后 运行 manage.py 运行服务器(再次没有错误)并尝试导航到 Chrome 中的页面(版本 41.0)我得到一个值为 [= 的 TemplateSyntaxError 异常38=]。

我的视图似乎工作正常,因为我可以在堆栈跟踪中看到一些 html 代码。突出显示的行在 {% extends 'base.html' %} 行之后。

我有一份 PDF 格式的 Django 1.7 手册,还用 Google 搜索过,据我所知,我需要做的就是在我的 settings.py 文件中包含根模板文件夹的模板路径,如下所示Django 将自动搜索每个应用程序中的模板文件夹。我的设置文件中的此项包含:

TEMPLATES_DIR = [
    os.path.join(BASE_DIR, 'templates'),
],

我还配置为使用 MySQL 5 数据库,但尚未使用任何代码访问它。

显然我在这里遗漏了一些东西。谁能帮忙。

您的 base.html 中有错字。注意 (% 应该是 {% 而不是:

<title>(% block pagetitle ...