我试图找出包含一些侧栏代码的最佳方法,这些代码几乎可用于我的每个模板。例如,我的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()
,它们都必须传递变量form_sidebar
,并且每个模板都需要{{1} }}。有一个更好的方法吗?我认为理想情况下我的{% include 'sidebar.html' %}
会base.html
,但我不知道如何为其提供{% include 'sidebar.html
数据。
答案 0 :(得分:2)
如果我没有弄错的话,您可以将form_sidebar
包含在模板中隐式提供的全局g
中。
要向g
投放,您可以在@before_request
修饰函数中全局投放,并在基础模板中包含侧边栏模板应该完成作业。