关于视图
1 为路由起名
通过endpoint参数为路由起名
api.add_resource(HelloWorldResource, '/', endpoint='HelloWorld')
2 蓝图中使用
from flask import Flask, Blueprintfrom flask_restful import Api, Resourceapp = Flask(__name__)user_bp = Blueprint('user', __name__)user_api = Api(user_bp)class UserProfileResource(Resource):def get(self):return {'msg': 'get user profile'}user_api.add_resource(UserProfileResource, '/users/profile')app.register_blueprint(user_bp)
3 装饰器
使用method_decorators添加装饰器
为类视图中的所有方法添加装饰器
def decorator1(func):def wrapper(*args, **kwargs):print('decorator1')return func(*args, **kwargs)return wrapperdef decorator2(func):def wrapper(*args, **kwargs):print('decorator2')return func(*args, **kwargs)return wrapperclass DemoResource(Resource):method_decorators = [decorator1, decorator2]def get(self):return {'msg': 'get view'}def post(self):return {'msg': 'post view'}
为类视图中不同的方法添加不同的装饰器
class DemoResource(Resource):method_decorators = {'get': [decorator1, decorator2],'post': [decorator1]}# 使用了decorator1 decorator2两个装饰器def get(self):return {'msg': 'get view'}# 使用了decorator1 装饰器def post(self):return {'msg': 'post view'}# 未使用装饰器def put(self):return {'msg': 'put view'}
