如何在 Flask 中设置 Jinja 环境变量? [英] How to set the Jinja environment variable in Flask?
问题描述
我有一个具有以下代码结构的页面:
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屋!