如何在 Flask 中设置 Jinja 环境变量? [英] How to set the Jinja environment variable in Flask?

查看:36
本文介绍了如何在 Flask 中设置 Jinja 环境变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个具有以下代码结构的页面:

I have a page with the following Code Structure:

Python 代码:

from flask import Flask,render_template

app=Flask(__name__)

@app.route('/')
def home():
    return render_template("first.html")

@app.route('/second')
def next():
    return render_template("second.html")

if __name__=="__main__":
    app.run(debug=True)

second.html 的 HTML 代码:

HTML Code for second.html:

{% extends first.html %}
<dosomething>
</dosomething>

现在我想设置Jinja的Environment如下:

Now I want to set the Environment of Jinja as follows:

环境:

import jinja2

JINJA_ENV=jinja2.Environment(block_start_string='#%',block_end_string="#%",variable_start_string='{',variable_end_string='}')

我希望这些更改反映在 Flask 中.这个变量应该以某种方式用 Flask 初始化还是保持原样?

I want this changes to be reflected in Flask. Should this variable be initialized with Flask in some way or left as such?

推荐答案

它没有公开记录,但是 Flask() 对象有一个 .jinja_options dict用于构建 Jinja 环境.请确保尽快设置它.

It's not publically documented, but a Flask() object has a .jinja_options dict that will be used to build the Jinja Environment. Just make sure to set it ASAP.

来源:

https://github.com/pallets/flask/blob/bbb273bb761461ab329f03ff2d9002f6cb81e2a4/src/flask/app.py#L272

https://github.com/pallets/flask/blob/bbb273bb761461ab329f03ff2d9002f6cb81e2a4/src/flask/app.py#L652

示例:

from flask import Flask
from jinja2 import ChainableUndefined

app = Flask(__name__)
app.jinja_options["undefined"] = ChainableUndefined

这篇关于如何在 Flask 中设置 Jinja 环境变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆