安装模块
pip install flask_restful
入门使用
使用步骤:
1. 导包
# 1. 导包
from flask_restful import Api, Resource
2. 创建api对象并接管app
# 2. 创建API对象并接管app
api = Api(app)
3. 创建类视图
# 3. 定义类视图
class IndexResource(Resource):
def get(self):
return 'index'
4. 使用api对象给类视图添加路由
# 4. 使用api对象添加路由
api.add_resource(IndexResource, '/')
案例代码:
from flask import Flask
# 1. 导包
from flask_restful import Api, Resource
app = Flask(__name__)
# 2. 创建API对象并接管app
api = Api(app)
# 3. 定义类视图
class IndexResource(Resource):
def get(self):
return 'index'
# 4. 使用api对象添加路由
api.add_resource(IndexResource, '/')
if __name__ == '__main__':
app.run()
结合蓝图使用
使用步骤:
1. 导包
# 1. 导包
from flask_restful import Api, Resource
from flask.blueprints import Blueprint
2. 创建蓝图对象
3. 创建api对象并接管蓝图
# 2. 创建蓝图对象,并使用API对象接管蓝图
bule_prin = Blueprint('flask_blueprint', __name__)
api = Api(bule_prin)
4. 定义类视图
5. 使用api对象给类视图添加路由
# 3. 定义试图,并使用API对象添加路由
class IndexResource(Resource):
def get(self):
return 'index'
api.add_resource(IndexResource, '/')
6. 注册蓝图
# 4.将蓝图注册到app中
app.register_blueprint(bule_prin)
案例代码:
from flask import Flask
# 1. 导包
from flask_restful import Api, Resource
from flask.blueprints import Blueprint
app = Flask(__name__)
# 2. 创建蓝图对象,并使用API对象接管蓝图
bule_prin = Blueprint('flask_blueprint', __name__)
api = Api(bule_prin)
# 3. 定义试图,并使用API对象添加路由
class IndexResource(Resource):
def get(self):
return 'index'
api.add_resource(IndexResource, '/')
# 4.将蓝图注册到app中
app.register_blueprint(bule_prin)
if __name__ == '__main__':
app.run()
结合装饰器使用
使用步骤:
1. 导包
from flask_restful import Api, Resource
2. 创建api对象并接管app
3. 编写装饰器
# 2. 定义装饰器
def outter(func):
def inner(*args, **kwargs):
ret = func(*args, **kwargs)
return '{} decorators....'.format(ret)
return inner
4. 定义类视图指定请求方法的装饰器,并使用api给类视图添加路由
# 1. 定义类视图,并设置路由
class IndexResource(Resource):
# 为所有请求方法都添加装饰器
# method_decorators = [outter]
# 为指定方法添加装饰器
method_decorators = {
'get': [outter]
}
def get(self):
return 'get ...'
def post(self):
return 'post ...'
api.add_resource(IndexResource, '/')
装饰器的指定方式:
1. 给所有请求方法都添加装饰器
# 为所有请求方法都添加装饰器
method_decorators = [outter]
2. 给指定的请求方法添加装饰器
# 为指定方法添加装饰器
method_decorators = {
'get': [outter]
}
案例代码:
from flask import Flask
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
# 2. 定义装饰器
def outter(func):
def inner(*args, **kwargs):
ret = func(*args, **kwargs)
return '{} decorators....'.format(ret)
return inner
# 1. 定义类视图,并设置路由
class IndexResource(Resource):
# 为所有请求方法都添加装饰器
# method_decorators = [outter]
# 为指定方法添加装饰器
method_decorators = {
'get': [outter]
}
def get(self):
return 'get ...'
def post(self):
return 'post ...'
api.add_resource(IndexResource, '/')
if __name__ == '__main__':
app.run()