Предоставить стандартные данные для шаблона Flask - PullRequest
0 голосов
/ 08 ноября 2019

Я хотел бы иметь возможность генерировать навигационную панель на основе содержимого объекта, в основном имея массив или класс навигационной панели, который содержит подстраницы и генерирует соответствующую навигационную панель со сворачивающимися частями и т. Д. У меня есть опыт работы с Laravel в PHP, который похож наНастой, но я не могу найти способ сделать это легко. Я должен был бы предоставить набор объектов данных для каждой отдельной страницы, так как это является частью макета, но предпочел бы не указывать его специально для каждой страницы. Есть ли способ сделать это?

Пока у меня есть только основы, фабрика приложений, вид и план:

Factory

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

    app.register_blueprint(blueprint_index)

    return app

Blueprint

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']))

Не обращайте внимания на небольшой текст отладки, который я добавил к маршруту.

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете сделать это с помощью контекстного процессора. Добавьте это в конец вашего блока кода проекта:

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

{{text}} теперь будет доступно в каждом шаблоне этого проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...