问题标签 [flask-restx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
94 浏览

python - 使用装饰器时如何使用烧瓶应用程序上下文

我想为这个“文章”端点使用来自Flask-Security-Too的令牌授权。但是,装饰器函数@auth_token_required("token")需要应用程序的上下文。该应用程序在不同的文件中初始化。

我已经添加了app.app_context(),但我不知道如何告诉装饰器使用它的上下文。

注意:我正在使用Flask-RestX来提供 SwaggerUI(和 OpenAPI 规范)。此外,我使用 Blueprints/Namespaces 来模块化 API - 这使得它有点复杂。

烧瓶告诉我:

0 投票
0 回答
69 浏览

python - 在上传到数据库之前使用 Mongoengine 验证修改

在从有效负载应用修改后,我想在将文档上传到数据库之前对其进行验证。两者都.update().modify()修改后的文档上传到数据库,所以我不能这样做.modify().validate()因为无论如何都会上传文档。

我怎么能做这些事情:

  • 强制验证.update()
  • 调用update()/modify()不上传到数据库
  • 在不上传的情况下修改我的文档(使用 中允许的方便语法.update()

这些东西之一(或类似的东西)是否存在?

payload可以是常规数据或 mongoengine 中允许的“Django 样式更新关键字参数” 。

接近我想要做的,但我不想从头开始重新创建文档。

到目前为止,我唯一的解决方案是肮脏的:调用modify(),验证更新的文档,如果验证失败则重新上传旧文档。

0 投票
0 回答
103 浏览

python - 使用 python flask restx,如何在不上传整个文件的情况下知道文件名

亲爱的,我正在使用烧瓶 restx 创建一个上传文件的服务。这些文件的大小可能在 64KB 到 500MB 之间。

实际上,我正在使用烧瓶request.files来了解文件名或其他规范,但该文件完全加载在 TEMP 目录中。

是否可以在不本地加载所有文件的情况下知道这些信息?

0 投票
2 回答
912 浏览

flask - 如何在 Flask-restx Swagger UI 中自动使用 Marshmallow Schema

我正在尝试使用 flask-restx 和 marshmallow 创建一个宁静的 Web 服务。

我将棉花糖用于请求和响应验证。

由于flask-restx api docs不支持swagger ui中的棉花糖模式,我想使用doc装饰器添加它。

控制器代码:

架构代码:

我正在尝试将参数从架构自动添加到 api 文档中

它会给出类似的东西

有没有办法做到这一点?

0 投票
1 回答
45 浏览

python - 如何使用 swagger 为我的 Python Flask 应用程序定义基本端点?

我正在尝试使用 Swagger 构建一个简单的 Flask 应用程序。到目前为止,经过一些教程,这就是我的main.py样子:

create_app()函数定义__init__.py如下:

现在,当我前往时,localhost:5000/api我看到 GET/POST 文档正确加载了招摇页面。但是,当我点击时,localhost:5000我得到了一个URL not found错误 - 可以理解,因为我还没有定义/路线 - 这就是我卡住的地方!如何在我的 中定义/路线main.py?据我了解,当前提供的所有端点都是/userinfo/(GET、POST)和/api. 我想添加该/端点以方便检查应用程序是否已启动

我是使用 Python 中的 Flask 构建微服务的新手。集成 swagger 实际上改变了main.py之前没有 swagger 的 coz 的面貌,我所有的路线都被注释了,app.route('/')所以我可以有一个/端点。

0 投票
1 回答
62 浏览

python - Flask 字段模型空列表

如何仅为空列表制作模型?我现在有一个看起来像这样:

这出现在 Swagger UI 中,如下所示:

但是,我并没有尝试使用字典......我实际上只是想要一个空列表(内容总是会因请求而异)。

所以在 Swagger UI 中,我只希望它显示为一个空的[].

0 投票
1 回答
412 浏览

flask - 使用 flask-restx 进行 API 响应的 Swagger 文档

我正在阅读带有flask-restx的swagger文档的文档,并按照示例进行操作。我知道为了为 API 采用的参数生成招摇的文档,我应该这样做

但是,我找不到有关如何记录 API 响应正文的说明。不是响应代码,而是例如 get 方法返回的结果。我正在寻找的是如下内容:

任何人都知道这是否可能,如果可以,如何?

0 投票
0 回答
107 浏览

python-3.x - 烧瓶restx中的序列化十进制

我正在使用 flask_restx 作为 API。

我需要返回一个 JSON 列表,每个 JSON 可能有 1 个键值对,其中值的类型为 Python decimal.Decimal。当我返回此列表时,我收到错误“十进制不是 JSON 可序列化”。我不想将小数转换为字符串,我希望它们采用相同的格式,但更改为浮点数会有数据截断问题。

我还安装了 simplejson,尝试设置flask_app.json_encoder = SimpleJson.JSONEncoder,但都没有成功。有人能帮我一下吗?

0 投票
1 回答
42 浏览

python - 关于根据Flask_restx的API对象声明位置路由函数的问题

Flask restx 是一个开发api函数的库,通过在flask框架中分文件来开发,支持swaggerui。在一台flask服务器上提供api和web页面时,可以将api部分分成文件,使用restx开发。但是,在注册命名空间以编写flask restx 时需要注意。下面两个源码的区别在于api的命名空间注册部分和api的app.route函数部分,以及api的命名空间注册部分是在app.route之前还是之后。

首先,用第一个源代码执行时,通常在接近/和/test路径时被识别。

但是,第二个源代码只能正常识别 /test 而 / 不能。

可以看到,console log 和 web browser 在接近 / route 的时候也显示 404 错误。但是,在第二个源代码中,并非所有 / 的子路由都不可能。

这样,/root 不被识别,但 /main 识别。

我不知道他们为什么这样做。

0 投票
1 回答
364 浏览

python - flask-restx 如何从模型创建解析器

flask-restx用于记录和格式化我的 api

我有一个应用程序,包括一个目录,以以下格式保存 json 模式:http: //json-schema.org/draft-07/schema#
(在我的应用程序中,它们保存为 json 文件,在下面的示例中我放它作为一个硬编码的字典来简化示例)


使用架构,我想实现 3 个目标:
  1. 文件
  2. 应要求验证
  3. 解析请求

使用@api.expect(request_model, validate=True)我设法实现(1)和(2),但我没有找到使用现有模式解析的方法,我不得不创建一个解析器对象reqparse.RequestParser(),并重写参数。
有没有办法RequestParser从模型创建?(模型是从现有的 json 模式文件创建的)

这是我的代码:


有没有办法做到:

?