首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递上下文到包含Jinja模板中的Jinja模板

传递上下文到包含Jinja模板中的Jinja模板
EN

Stack Overflow用户
提问于 2016-02-17 06:29:01
回答 1查看 3.4K关注 0票数 1

我在所有的金甲档案里都有共同的东西。我想把所有常见的内容都移到一个Jinja文件中。

我的应用程序是用Flask编写的,我正在将上下文传递给Jinja模板,如

def f1(name): render_template('j1.jinja', name=name)

def f2(name): render_template('j2.jinja', name=name)

def f3(name): render_template('j3.jinja', name=name)

我的j1.jinja文件是:

代码语言:javascript
复制
{%block content %}
Name: {{ name }}
Hello
{% endblock %}

我的j2.jinja文件是:

代码语言:javascript
复制
{%block content %}
Name: {{ name }}
Bye
{% endblock %}

我的j3.jinja文件是:

代码语言:javascript
复制
{%block content %}
Name: {{ name }}
Howdy
{% endblock %}

我将常见内容移到单个Jinja文件common.jinja中,即:

代码语言:javascript
复制
{% block content %}
Name : {{name}}
{% endblock %}

我把它包括在金甲的所有档案里,比如:

代码语言:javascript
复制
{% include 'common.jinja' with { "name": name } only %}

这不起作用。我得到了例外:

代码语言:javascript
复制
Exception Occured. Explanation: expected token 'end of statement block', got 'with'

如何将上下文传递给包含Jinja文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 07:28:45

你的代码看起来有点奇怪。没有单独的with语句指定上下文,通常与import语句一起使用的是with context (参见导入上下文行为)。

要将任何上下文传递给包含的模板,只需使用上下文变量呈现父模板,例如在render_template()

代码语言:javascript
复制
render_template('j3.jinja', name=name)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35449415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档