在 Flask 中,如何在装饰器内获取路由值(例如“/admin”)?我需要根据使用的路由将某些字符串传递给数据库(并且它们都使用相同的装饰器)。
@app.route('/admin')
@decorator
def admin(data):
do_something(data)
我找不到有关如何在 Python 中执行此操作的信息。可能吗?
最佳答案
您可以定义一个新的装饰器来获取当前的路由路径,然后用它做一些事情:
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)
关于python - 从装饰器内部获取路由值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48458780/