我一直在寻找如何在django 1.8中使用jinja2的方法,但是没有完整的源代码可以将django与jinja2一起使用。我想知道你们是否知道在Django中使用jinja2的过程。我查看了官方文档,并查看了以下问题:如何设置django 1.8以使用jinja2?
但是他们都没有清楚地解释如何以综合方式使用jinja2。我刚刚开始使用django,不了解文档中的所有术语。我真的很感谢你的帮助。
第一拳你必须安装jinja2:
$ pip install Jinja2
然后TEMPLATES在settings.py中修改你的列表,使其包含jinja2 BACKEND
:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(BASE_DIR, 'templates/jinja2')],
'APP_DIRS': True,
'OPTIONS': {'environment': 'myproject.jinja2.Environment',},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
]
templates/jin
ja2jinja2模板文件所在的目录在哪里。
并在你的views.py文件中:
from __future__ import absolute_import # Python 2 only
from jinja2 import Environment
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
def environment(**options):
env = Environment(**options)
env.globals.update({
'static': staticfiles_storage.url,
'url': reverse,
})
return env
这使得static
与url
在你所在的Jinja2模板。
问题内容: 我从Flask的Jinja2模板提供动态页面。现在,我在脚本标签内定义客户端模板,例如Jinja2克隆Nunjucks。问题是,客户端模板具有类似语法该Flask’s的 Jinja2的解释,而不是可以解释渲染的逐字。 如何使整个脚本块逐字呈现? 问题答案: 你可以禁用块内标签的解释:
问题内容: 我必须遵循以下方案: python字典的python列表列表中的 每个元素都是一个python字典,看起来像这样: 现在,我希望所有字典作为主模板中的列表。但是,每个词典的内容应由子模板呈现。应使用哪种模板来呈现内容,应由字典的type变量定义。 关于使用Jinja2如何完成此操作的任何提示(如果有帮助,我正在通过Flask使用它。) 谢谢! 问题答案: 如果有人需要它: 然后可以在模
什么是模板引擎 在 Web 开发中,我们经常会使用到模板引擎。简单点来说,我们可以把模板看成是一个含有某些变量的字符串,它们的具体值需要在动态运行时(请求的上下文)才能知道。比如,有下面一个模板: <h1>Hello, {{ name }}!</h1> 其中,name 是一个变量名,我们用 {{ }} 包裹它表示它是一个变量。我们给 name 传不同的值,模板会返回不同的字符串。像这样,使用真实的
问题内容: 我正在为使用Jinja模板的服务器使用Flask微框架。 我有一个家长和孩子们的一些所谓的模板和,这些孩子有的模板是相当大的HTML文件,我想以某种分裂他们超过我的工作更好的洞察力。 我的脚本内容: The magic is in : 魔力在于child1.html: 而不是评论: 我有很多html文本,很难跟踪更改并且不犯一些错误,因此很难查找和纠正。 我只想加载而不是全部写入。 我
问题内容: 我有一个Flask网站,并且想使用AngularJS JavaScript框架。不幸的是,似乎分隔符重叠。 如果两个都依赖于双花括号(),如何将Angular与Jinja2配合使用?可能吗 问题答案: 您有一些选择。 1)更改Angular的定界符表示法: 无论选择什么作为开始和结束符号,都将充当新的分隔符。在这种情况下,您可以使用将变量表示为Angular 。 这种方法的优点是只需要
问题内容: 我正在为Flask和SQLAlchemy构建管理员,并且我想使用来将用于不同输入的HTML传递给我的视图。模板框架似乎会自动转义html,因此所有<“’>都将转换为html实体。如何禁用它以使HTML正确呈现? 问题答案: 理想的方法是 而不是完全关闭自动转义。