Python装饰器,烧瓶,Args

时间:2020-04-02 22:37:14

标签: python-3.x flask python-decorators functools

我想知道为什么当我转到“ /al6759@school.edu/info”路线时,控制台会打印

()
al6759@school.edu

即使向user_info发送了值,为什么args为空?我试图提供解决问题所需的最少代码。预先感谢。

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 个答案:

答案 0 :(得分:1)

我认为您想在装饰器中打印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
相关问题