flask_restful
是一个扩展库,它为 Flask 提供了快速构建 RESTful API 的功能。使用 flask_restful
可以简化 RESTful API 的开发过程,减少样板代码,并且提供了一些高级特性,如 HTTP 方法的映射、资源路由的定义等。
在flask_restful
中,类视图是构建RESTful API的主要方法之一。下面是一些关键的知识点:
(1)定义资源类
这个资源类其实就是,视图类。资源类继承自flask_resetful.Resource
类。每个资源类代表一个RESTful资源。
from flask import Flask, jsonify
from flask_restful import Resource
class HelloWorld(Resource):
def get(self):
return jsonify({"hello": "world"})
(2)添加资源到API
使用flask_restful.Api
类来创建一个API实例,并将资源添加到API中。API实例负责路由的设置和资源的注册。
from flask import Flask
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app) # 可以直接将app传入的方式来绑定API插件
class HelloWorld(Resource):
def get(self):
return {"hello": "world"}
# 将HelloWorld资源类绑定到'/hello'路径
api.add_resource(HelloWorld, '/hello')
(3)处理HTTP方法
资源类中的方法对应HTTP方法。常见的HTTP方法包括GET
,POST
,PUT
,DELETE
等。
class UserResource(Resource):
def get(self, user_id):
# 查询用户信息
# 从请求路径中获取 user_id
return {'user': user_id}, 200 # 第二个参数是状态码
def post(self):
# 创建用户
# 获取 JSON 请求体中的数据
data = request.get_json()
return {'data': data}, 201 # 创建成功
def put(self, user_id):
# 更新用户信息
pass
def delete(self, user_id):
# 删除用户
pass
# 注册资源(定义路由)
api.add_resource(User, '/users/<int:user_id>')