Python Декораторы, Flask, Арги - PullRequest
       34

Python Декораторы, Flask, Арги

0 голосов
/ 03 апреля 2020

Мне интересно, почему, когда я go на маршрут '/ al6759@school.edu/info', консоль печатает

()
al6759@school.edu

Почему аргументы пустые, даже если user_info отправлено значение? Я попытался предоставить наименьшее количество кода, необходимого для решения проблемы. Заранее спасибо.

from flask import Flask, render_template, request, redirect, session
from functools import wraps


def security(f):
    @wraps(f)
    def wrap(*args, **kwargs):
        print(args)
        return f(*args, **kwargs)
    return wrap


@app.route('/<email>/info', methods=['POST', 'GET'])
@security
def user_info(email):
    print(email)
    return render_template('user_info.html')

1 Ответ

1 голос
/ 03 апреля 2020

Я думаю, что вы хотите напечатать kwargs['email'] в вашем декораторе.

Так вот, например:

def security(f):
    @wraps(f)
    def wrap(*args, **kwargs):

        print('email from kwargs: ', kwargs['email'])
        print('kwargs: ', kwargs)

        return f(*args, **kwargs)
    return wrap

Даст результат:

email from kwargs:  al6759@school.edu
kwargs:  {'email': 'al6759@school.edu'}
al6759@school.edu
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...