FlaskRESTful之入门
安装模块
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
api = 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()
该花的钱要花,该吃的饭要吃。