Python 不带reqparse.RequestParser()的简单请求解析
Python 不带reqparse.RequestParser()的简单请求解析,python,flask,flask-restful,Python,Flask,Flask Restful,flask\u restful.reqparse已被弃用(): Flask RESTful的整个请求解析器部分将被删除,并将被关于如何与其他包集成的文档所取代,这些包可以更好地完成输入/输出工作(例如)。这意味着它将维持到2,但认为它被弃用。不要担心,如果您现在有代码使用它,并且希望继续这样做,那么它不会很快消失 我简单地看了一下棉花糖,仍然有点困惑,如果我想替换reqparse.RequestParser(),该如何使用它。我们应该写什么,而不是像下面这样的东西: 从烧瓶导入烧瓶,请求,响应
flask\u restful.reqparse
已被弃用():
Flask RESTful的整个请求解析器部分将被删除,并将被关于如何与其他包集成的文档所取代,这些包可以更好地完成输入/输出工作(例如)。这意味着它将维持到2,但认为它被弃用。不要担心,如果您现在有代码使用它,并且希望继续这样做,那么它不会很快消失
我简单地看了一下棉花糖,仍然有点困惑,如果我想替换reqparse.RequestParser()
,该如何使用它。我们应该写什么,而不是像下面这样的东西:
从烧瓶导入烧瓶,请求,响应
从flask_restful导入请求解析
@app.route('/',方法=['GET'])
定义my_api()->响应:
parser=reqparse.RequestParser()
parser.add_参数('username',type=str,required=True)
args=parser.parse_args()
返回{'message':'cool'},200
(在阅读了半个小时的更多文档后…)
RequestParser默认情况下查看MultiDict
请求值(显然是查询参数,然后根据查询结果形成主体参数)。因此,我们只需要以某种方式验证request.values
中的数据
下面是一段来自棉花糖的相关代码。这似乎比reqparse
要复杂得多:首先创建一个模式类,然后实例化它,然后让它加载请求JSON。我宁愿不必为每个API端点编写单独的类。是否有类似于reqparse
的更轻量级的东西,您可以在定义端点的函数中写入所有类型的参数验证信息
from flask import Flask, request, Response
from flask_restful import reqparse
from marshmallow import (
Schema,
fields,
validate,
pre_load,
post_dump,
post_load,
ValidationError,
)
class UserSchema(Schema):
id = fields.Int(dump_only=True)
email = fields.Str(
required=True, validate=validate.Email(error="Not a valid email address")
)
password = fields.Str(
required=True, validate=[validate.Length(min=6, max=36)], load_only=True
)
joined_on = fields.DateTime(dump_only=True)
user_schema = UserSchema()
@app.route("/register", methods=["POST"])
def register():
json_input = request.get_json()
try:
data = user_schema.load(json_input)
except ValidationError as err:
return {"errors": err.messages}, 422
# etc.