Flask 跨多个模板包含边栏的正确方法?
我正试图找出最好的方法来包含一些边栏代码,这些代码将在我的几乎每一个模板上使用。例如,我的Flask 跨多个模板包含边栏的正确方法?,flask,wtforms,Flask,Wtforms,我正试图找出最好的方法来包含一些边栏代码,这些代码将在我的几乎每一个模板上使用。例如,我的index.html是 {% extends "base.html" %} Hello, ... {% include 'sidebar.html' %} {% endblock %} 意见是: @app.route('/') @app.route('/index') def index(): # some stuff for my index page... form_s
index.html
是
{% extends "base.html" %}
Hello, ...
{% include 'sidebar.html' %}
{% endblock %}
意见是:
@app.route('/')
@app.route('/index')
def index():
# some stuff for my index page...
form_sidebar = sidebar()
return render_template('index.html', indexdata=indexdata, form_sidebar=form_sidebar)
我的边栏表单是用
def sidebar():
form_sidebar = MySideBarForm() # defined in forms.py
# do some sql stuff to initialize the form ...
return form_sidebar
我的sidebar.html
使用从sidebar()
接收的数据
如果我以这种方式继续,那么我的每个视图函数都必须调用
sidebar()
,它们都必须传递varialbeform\u sidebar
,并且每个模板都需要{%include'sidebar.html%}
。有更好的方法吗?我认为理想情况下,我的base.html
应该{%include'sidebar.html
,但是我不知道如何为它提供表单侧边栏
数据。如果我没有弄错的话,你可以将你的表单侧边栏
包含在全局g
中,这在模板中是隐式可用的
若要提供
g
,您可以在请求之前在@函数中全局执行该操作,并且在基本模板中包含边栏模板应该可以完成该工作。谢谢。这就是我正在寻找的。