我使用Flask Restful创建了一个rest api,并使用reqparse来获取通过POST调用传递的数据。
到目前为止,我可以获取原始数据在Postman中传递的数据。如果我想在Postman中使用二进制文件,应该在reqparse的add_argument中包含什么类型?
当前代码:
from flask_restful import Resource, reqparse
def post(self):
parser = reqparse.RequestParser()
parser.add_argument('dataUrl')
args = parser.parse_args()
答案 0 :(得分:0)
如果以以下方式创建解析器:
upload_parser = server.api.parser()
upload_parser.add_argument('', location='data',
type=bytes, required=True)
您将收到错误TypeError:需要一个类似字节的对象,而不是'str' 我试图将type =更改为FileStorage,bytes,bytearray,但没有任何帮助。
如果代替数据使用https://flask-restplus.readthedocs.io/en/stable/_modules/flask_restplus/reqparse.html中的任何位置,则会收到有关缺少参数的错误。
答案 1 :(得分:0)
使用flask_restful.inputs.boolean并设置其默认值(否则它将不起作用)。示例:
from flask import Flask
from flask_restful import Resource, Api, reqparse, inputs
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
parser.add_argument('dataUrl', type=inputs.boolean, default=False)
@app.route('/<string:dataUrl>')
def post(self, dataUrl):
data = parser.parse_args()
return data