1 安装
pip install flask-restful
2 官方文档
Flask-RESTful — Flask-RESTful 0.3.8 documentation
3 样例代码
from flask_restful import Resource, Api, reqparse
''' 创建 Api 对象,用于管理 类视图(资源) '''
api = Api(app)
''' 验证端提交过来的参数 '''
parser = reqparse.RequestParser()
class TestCaseResource(Resource):
def get(self):
'''
对前端 reuest 提交过来的参数进行验证,对前端提交过来的 username 参数进行校验,校验规则
是一套规则的组合,都满足代码才会往下走,只要有一个校验规则不通过,就会 response 给前端
json_str 的异常信息,内容为
{
"message": {
"username": "Please input username: "
}
}
如果 校验规则中没有指定 help 异常返回信息,默认返回如下内容
{
"message": {
"username": "Missing required parameter in the JSON body"
}
}
各个校验规则详细说明如下
location 参数所在的位置,数据类型为 list ,元素可以为 json(post 请求的 body 且 body
的数据格式为 json 串)、form(post 请求的 body ,但不要求 body 的数据格式必须为 json
串)、args(url 中的查询参数)、values(form 或 args)、headers、cookies,也就是这个
参数必须以这些参数体中出现,例如 location=['args'] 表示参数必须以 查询参数 出现,如果以
路径参数、body 体中出现,都会校验不通过。
type 参数的数据类型,支持的值有 int、zero_int、str、empty_str
'''
parser.add_argument(name='username',
location=['json', 'args'],
nullable=False,
required=True,
type=str,
help='Please input username: ')
'''
参数校验通过了,将所有的参数都取出来,返回值的数据类型为 .
flask_restful.reqparse.Namespace,本质其实一个 dict
'''
args = parser.parse_args()
'''
response 返回一个 dict ,但 flask_restful 模块会自动转成 str_json 返给 客户端
'''
return {
'foo': 'post',
''' 将 request 传过来的 username 参数取出来 '''
'username': args['username']
}
''' 将 Resource 资源添加到路由中 '''
api.add_resource(TestCaseResource, '/test-case/')