Задать вопрос
@Vlad1779

Как передать данные из flask в wrap, а затем на страницу сайта?

Здравствуйте! Я создал wrap, и он имеет событие с выводом html страницы. Wrap будет подключен для нескольких страниц на сайте, но дело в том, что на каждой из них разные переменные и подключить их все я не смогу. Есть какое-нибудь решение. Также я гуглил но к сожалению ничего не нашел.
def plugin_page(name):
    def decorator(f):
        @wraps(f)
        def wrapper():
            return render_template('plugin-' + name.lower() + '.html',  user=user, info=info)
            
        return wrapper

    return decorator


@app.route('/welcome')
@plugin_page('Welcome')
def plugin_welcome():

    plugin = col.find({})

    return {
        'welcome_msg': plugin['welcome_msg'],
        'goodbye_msg': plugin['goodbye_msg'],
    }
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Дунадан - северный странник. Злой, но очень добрый
Передавайте дополнительные аргументы в декоратор, в чём проблема
def plugin_page(name, **kwargs):
    def decorator(f):
        @wraps(f)
        def wrapper(*args, **kwargs):
            # Вызов оригинальной функции и получение её результата
            result = f(*args, **kwargs)
            # Объединение результата функции с дополнительными аргументами
            context = {**result, **kwargs}
            return render_template('plugin-' + name.lower() + '.html', **context)

        return wrapper

    return decorator
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы