flask-restful的使用
flask-restful的路由视图函数匹配:
from flask import Flask from flask_restful import Api,Resource app = Flask(__name__) api = Api(app) # 视图函数 class IndexResource(Resource): def get(self): return {'name':'vack'} # 添加访问路由 api.add_resource(IndexResource,'/') if __name__ == '__main__': app.run()
蓝图的restful视图函数:
from flask import Flask,Blueprint from flask_restful import Api,Resource app = Flask(__name__) # 创建蓝图 bp = Blueprint('bp_index',__name__) # 把蓝图对象给Api接口 api = Api(bp) # 定义视图类 class IndexResource(Resource): def get(self): return {'get':'hello restful'} def post(self): return {'post':'hello restful'} #蓝图注册 app.register_blueprint(bp) # api注册路由 api.add_resource(IndexResource,'/') if __name__ == '__main__': app.run()
装饰器在flask-restful的配置方法:
from flask import Flask from flask_restful import Api,Resource app = Flask(__name__) api = Api(app) # 定义一个装饰器函数 def delecr(func): def wrapper(*args,**kwargs): print('装饰器1运行') rec = func(*args,**kwargs) print('装饰器1结束') return rec return wrapper def delecr2(func): def wrapper(*args,**kwargs): print('装饰器2运行') rec = func(*args,**kwargs) print('装饰器2结束') return rec return wrapper class IndexResource(Resource): method_decorators = { 'get': [delecr], 'post':[delecr2] } def get(self): return {'get':'kevin'} def post(self): return {'post':'vack'} api.add_resource(IndexResource,'/') if __name__ == '__main__': app.run()