在Flask中,如何在装饰器中获得路线值(例如'/ admin')?我需要将某些字符串传递给DB,具体取决于使用的路径(并且它们都使用相同的装饰器)。
@app.route('/admin')
@decorator
def admin(data):
do_something(data)
我无法找到有关如何在Python中执行此操作的信息。有可能吗?
答案 0 :(得分:1)
你可以定义一个新的装饰器,它获取当前的路径路径,然后用它做一些事情:
from functools import wraps
from flask import request
def do_st_with_path(f):
@wraps(f)
def decorated_function(*args, **kwargs):
path = request.path
do_anything_with_path(path)
return f(*args, **kwargs)
return decorated_function
对于每条路线,将此装饰器添加为第二个:
@app.route('/admin')
@decorator
def admin(data):
do_something(data)
不添加新装饰器的另一种解决方案:使用before_request
。在每次请求之前,您还可以检查路径路径:
@app.before_request
def before_request():
path = request.path
do_anything_with_path(path)