向Flask模板提供标准数据

我希望能够基于对象的内容生成导航栏,基本上具有一个导航栏数组或类来保存子页面,并生成具有折叠部分的适当导航栏等。我在PHP中具有Laravel的经验,类似于烧瓶,但我想不出一种简单的方法。我将不得不为每个页面提供一组数据对象,因为它是布局的一部分,但希望不必为每个页面专门指定它。有办法吗?

到目前为止,我只有基础知识,应用程序工厂,视图和蓝图:

工厂

def create_app():
    app = flask(__name__)
    app.config.from_pyfile('config.py')

    app.register_blueprint(blueprint_index)

    return app

蓝图

from flask import Blueprint,render_template,session

blueprint_index = Blueprint('simple_page',__name__)


@blueprint_index.route('/')
def index():
    if 'text' in session:
        session['text'] += 1
    else:
        session['text'] = 0
    return render_template('pages/index.html',text=str(session['text']))

忽略我添加到路由中的少量调试文本。

ccjjccnn 回答:向Flask模板提供标准数据

您可以使用上下文处理器来执行此操作。将此添加到您的蓝图代码块的末尾:

@blueprint_index.context_processor
def inject_text():
    return dict(text=session['text'])

{{text}}现在将在该蓝图上的每个模板中提供。

本文链接:https://www.f2er.com/3138341.html

大家都在问