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

Posted

技术标签:

【中文标题】带有 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 【发布时间】:2015-05-20 14:51:57 【问题描述】:

我对 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 runserver (再次没有错误)并尝试导航到 Chrome 中的页面(版本 41.0)我得到一个 TemplateSyntaxError 异常,其值为“未关闭的标记'块'。寻找其中之一:endblock” .

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

我有一份 Django 1.7 手册的 PDF 副本,并且还通过 Google 搜索,据我所知,我需要做的就是在我的 settings.py 文件中包含根模板文件夹的模板路径,因为 Django 将自动搜索每个应用程序中的模板文件夹。我的设置文件中的这个条目包含:

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

我还配置为使用 mysql 5 数据库,但还没有使用任何代码。

显然我在这里遗漏了一些东西。任何人都可以帮忙吗?

【问题讨论】:

【参考方案1】:

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

<title>(% block pagetitle ...

【讨论】:

以上是关于带有 Python 2.7.6 和 Virtualenv 12.0.7 (OSX10,10.2) 的 Django 1.7.6 - 模板呈现模板语法错误的主要内容,如果未能解决你的问题,请参考以下文章

编程开发软件Python-2.7.6-2.7.15安装教程附下载

Ubuntu 12.04 LTS:在不破坏依赖关系的情况下将 python 2.7.3 更新到 2.7.6 [关闭]

Python virtual env

Python virtual env

CentOS 6.X怎么更新Python2.7.x版本

python 2.7.3(ubuntu12.04 default python) 升级到 python 2.7.6 版本的方法