Как получить доступ к имени приложения из шаблона чертежа? - PullRequest
0 голосов
/ 29 октября 2018

Я написал общий проект для нескольких независимых приложений в виде пакета на Python. В основном это просто шаблон верхнего уровня и таблица стилей, чтобы придать приложениям унифицированный дизайн. Я хотел бы отобразить название текущего приложения в шаблоне верхнего уровня, но я понятия не имею, как. Кажется, что нет способа добраться до контекста приложения из чертежа, который было зарегистрировано приложением.

Я пробовал это:

@blueprint.context_processor
def appinfo():
    return { 'appname': flask.current_app.name }

, но работает только тогда, когда шаблон отображается одной из функций представления проекта, но не из приложения.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

blueprint.app_context_processor () добивается цели.

0 голосов
/ 29 октября 2018

Использование декоратора Blueprint.context_processor подразумевает, что функция будет вызываться только для запросов, обрабатываемых проектом. Пространства имен отличные!

Если вы хотите, чтобы имя приложения было доступно в каждом шаблоне: приложение и чертежи, регистрация контекстного процессора с помощью Flask.context_processor должна удовлетворить это.

app = Flask(__name__)

@app.context_processor
def appinfo():
    return dict(appname=app.name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...