当前位置: 首页 > 知识库问答 >
问题:

如何上传文件在烧瓶Rest昂首阔步

习狐若
2023-03-14

我想上传一个json文件在烧瓶restful swagger api,这是我的参数

  parameters=[
      {
            "name": "filename",
            "description": "json file upload ",
            "required": True,
            "allowMultiple": False,
            "dataType": "file",
            "paramType": "body"
        }

我用

reqparse.#######################################################################################

解析器。添加参数('filename',type=str,location='args')

parser.parse_args

打印(args.filename)

为了获得上传的文件名,我打印了它,但它没有。

如何在flask restful swagger api中上载文件?

非常感谢!

共有2个答案

慕承恩
2023-03-14

我已经解决了这个问题,写在这里:

改变

parser.add_argument(文件名,类型=str,位置='args')

解析器。添加参数('filename',type=werkzeug.datastructures.FileStorage,location='files')

但你首先需要进口werkzeug

然后您可以使用werkzeug的方法。数据结构。文件存储

你可以从哪里使用它http://werkzeug.pocoo.org/docs/0.12/datastructures/

file=args。文件名

filename=文件名。文件名#上传文件名

文件保存(保存路径)#您可以将文件保存到要保存的路径#但请记住,保存路径包括文件名

也可以使用以下方法保存文件:

行=文件。read()#字节类

f=打开(文件名,“wb”)#新建一个文件并给出文件名

f、 写入(行)#写入字节

f、 关闭()

现在:parameters=[{“name”:“filename”,“description”:“dd”,“required”:True,“allowMultiple”:False,“dataType”:“file”,“paramType”:“body”}]

华心思
2023-03-14

有点晚了,但是。。。

您需要在swagger中编辑endpoint定义。yamlAPI规范文件,例如:

paths:
  '/your/api/upload':
    post:
      summary: Upload a file.
      operationId: postFile
      consumes:
        - multipart/form-data
      produces:
        - application/json
      parameters:
        - in: formData
          name: file # change it to your parameter name
          required: true
          type: file
          description: Stream to write to filesystem
        # other optional form parameters, e.g. ...
        - in: formData
          name: offset
          type: integer
          description: Bytes to skip at the beginning of the file

之后,您可以自动生成Python控制器,例如使用Swagger Editor的内置函数

参考:Swagger 2.0文档

 类似资料:
  • 问题内容: 我想知道如何用昂扬的方式记录枚举。 根据JavaDoc 数据类型。请参阅文档以获取受支持的数据类型。如果数据类型是自定义对象,请设置其名称,或不设置任何名称。如果是枚举,请为枚举常量使用’string’和allowableValues。 但是我没有找到一些好的Java示例如何真正使用它,规范在这里。 第一服务 第二服务 输入项 天 输出量 pom.xml 您可以在此处查看结果。 我看到

  • 数据类型。有关支持的数据类型,请参见文档。如果数据类型是自定义对象,请设置它的名称,或者不设置任何名称。对于枚举,使用'string'和allowableValues作为枚举常量。 但是我没有找到一些好的Java示例如何真正使用它,规范在这里。 你可以在这里看到结果。 我认为是个问题... 你知道吗?

  • 我们正在为我们的Laravel REST API实现开发Swagger文档。几个POSTendpoint将使用CSV作为参数内容类型。 Swagger中是否有一种方法可以让“立即尝试”功能与CSV POST文件上传一起使用? 下面是我们的留档http://api.curvecompass.com/docs/#/ 我们的Laravel POST函数可以正确地与CSVendpoint一起工作,而不是与

  • 问题内容: 我正在尝试使用swagger定义post端点,但是不允许使用该参数: 当我跑步时,我得到这个: 我的规格有什么问题? 问题答案: 您可能正在混合使用OpenAPI / Swagger 2.0和OpenAPI 3.0语法。您的规格似乎是2.0,但是关键字是3.0功能。在2.0中,请求正文被定义为正文参数: 更多信息:描述请求正文

  • 我正在努力找到配置基本路径的方法。 我想配置基本路径服务器端 我正在使用OpenAPI生成器从一个招摇过市的endpoint(asp核心web api)生成SUB 是否有方法配置不同的基本路径。