flask-restful中,给类视图设置装饰器的方法
通过 method_decorators类属性 来设置类视图的装饰器
该属性接收两种类型数据
- 列表形式: 所有请求方式都会使用列表中的装饰器
- 字典形式: 给请求方式分别设置装饰器
代码示例:
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
# 装饰器1
def deco1(f):
def wrapper(*args, **kwargs):
print('deco1')
return f(*args, **kwargs)
return wrapper
# 装饰器2
def deco2(f):
def wrapper(*args, **kwargs):
print('deco2')
return f(*args, **kwargs)
return wrapper
class DemoResource(Resource):
# 通过method_decorators类属性来设置类视图的装饰器
# method_decorators = [deco1, deco2] # 列表形式 所有请求方式都会使用
method_decorators = {'get': [deco1], 'post': [deco2]} # 字典形式 给请求方式分别设置装饰器
# @deco2
# @deco1
def get(self):
return {'foo': "get"}
def post(self):
return {'foo': "post"}
# 类视图关联组件对象
api.add_resource(DemoResource, '/')
if __name__ == '__main__':
app.run(debug=True)