我正在使用烧瓶.我处于这样一种情况,我需要将一个post请求重定向到另一个url,保留请求方法,即"POST"方法.当我将"GET"请求重定向到另一个接受"GET"请求方法的网址时没问题.这是我正在尝试上面的示例代码..
@app.route('/start',methods=['POST'])
def start():
flask.redirect(flask.url_for('operation'))
@app.route('/operation',methods=['POST'])
def operation():
return "My Response"
Run Code Online (Sandbox Code Playgroud)
我想对"/ start"url发出"POST"请求,内部也向"/ operation"url发出"POST"请求.如果我修改代码,就像这样,
@app.route('/operation',methods=['GET'])
def operation():
return "My Response"
Run Code Online (Sandbox Code Playgroud)
代码适用于"GET"请求.但我也希望能够发出POST请求.
我试图在flask中定义一个装饰器,最后将装饰传递该类实例参数的类方法.这是我真正想做的一个例子.
from functools import wraps
def user_permission(myname):
def decorator(f):
@wraps(f)
def decorated(*args,**argws):
if myname == 'My Name':
return f(*args,**argws)
else:
return "Not Permitted"
return decorated
return decorator
Run Code Online (Sandbox Code Playgroud)
我的经理类定义为:
class Manager(flask.views.MethodView):
def __init__(self,name):
self.name = name
@user_permission(self.my_name)
def post(self):
return "Response"
def get(self):
return "Response"
Run Code Online (Sandbox Code Playgroud)
我想要做的是将类变量传递给装饰器.是的"自我"在那时没有定义,但"@ decorator.user_permission(self.my_name)"是我实际尝试的,因为我还没有解决我的问题.
我找不到这里的解决方案.有人知道这些东西吗?