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()

 

posted @ 2022-01-28 17:14  青红*皂了个白  阅读(273)  评论(0)    收藏  举报