带有 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 2.7.3(ubuntu12.04 default python) 升级到 python 2.7.6 版本的方法