问题标签 [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 投票
1 回答
217 浏览

python-3.x - Flask-Restx(/Flask-Restplus) 检测重载

我的问题如下:在我的 Flask-Restx-Application 中,我创建了一个 Runner-Thread,它与 Flask-Application 的主线程异步运行。

现在,当我像往常一样进行更改时,调试器仍然显示* Detected change in 'XXXXX', reloading这是一个有用的功能。问题是现在它卡住了并且由于必须手动停止正在运行的线程而无法重新加载。

如果可能的话,我仍然希望将自动重新加载与异步 Runner-Thread 结合使用。是否有可能通过触发事件或类似的东西来“检测”这些重新加载?然后我可以手动关闭 Runner-Thread 并使用应用程序重新启动它。或者至少有可能不阻止重新加载以继续重新加载与flask-restx相关的东西?

提前感谢您的帮助。

PS:我发现这里很难添加代码,因为我不知道烧瓶应用程序的哪些部分很重要。如果您需要任何代码来回答问题,我会将其添加到编辑中。

0 投票
1 回答
445 浏览

python - Flask restx MarshallingError 格式不正确

问题上下文

MarshallingError使用 flask-restx 生成 api 文档时,我遇到了一些意外行为。我有一个自定义的 flask-restx 字段定义,如下所示。

enum_type简单的东西在哪里

然后将其打包在一个 restxapi.model中,如下所示。

问题

当我在 中输入一个整数时name,正如预期的那样,我得到了一个很好的错误,如下所示。

但是,当我输入一个不在我的枚举中的值(例如“d”)时,错误似乎在我的format定义中被捕获,但是,MarshallingError并没有像预期的那样隐藏所有内部错误。这是正在输出的内容的简短片段。

问题

  1. 这是预期的行为吗?
  2. 是否可以返回更清晰的错误,如上图所示?我的理解是我的定义format应该实现这一点?

完整的测试申请

0 投票
2 回答
2572 浏览

python - 将身份验证装饰器添加到烧瓶 restx

我有一个使用flask-restxand的 Flask 应用程序flask-login。我希望默认情况下所有路由都需要登录,并明确定义不需要身份验证的公共路由。我已经按照这个问题中给出的示例开始使用装饰器:

使 Flask-Login 的 login_required 成为默认值的最佳方法

它适用于函数端点,但不适用于restx资源端点。

我尝试将函数添加为装饰器并使用该method_decorators字段。例如:

这个测试通过了:

我的挑战是我看不到如何在我的身份验证逻辑中访问此属性:

这适用于普通函数端点,但不适用于 restx 资源。

我知道这restx是将我的资源类包装在一个函数中,以便烧瓶可以进行调度,但我不知道如何从这里访问装饰器。所以我有一些问题:

  • 是否可以从 view_function 访问装饰器?
  • 是否有可能知道端点是 restx 资源还是普通的 rest 函数?
  • 有没有更好的方法来做我想要实现的目标?
0 投票
1 回答
1453 浏览

python - Flask restx 模型嵌套通配符字典

我想知道我是否只是一个在这个问题上苦苦挣扎的人。

让我们以 dict 为例:

请注意ram1/2是无法提前知道的动态键

问题,我的 api.model 应该是什么样子?我有:

它正在工作,但是它不会验证“分发”以下的任何内容,换句话说,就像通配符一样工作,任何东西都将被接受。有没有办法以通配符动态键的方式嵌套字典?

0 投票
0 回答
101 浏览

flask - 有没有办法在 flask_restx 中编组不同的响应代码?

和:

我们可以使用预定义的响应模型response_model和状态码来编组响应。

我的问题是假设我们对请求进行了验证,并且我们想抛出 400 错误。

是否可以使用不同的模型和不同的代码来编组相同的方法:

0 投票
1 回答
207 浏览

flask - 只允许预期的字段?

我的模型需要两个字段,我使用该模型验证我的端点:

我如何能:

  1. 如果存在指定的两个键之外的键,则引发验证错误
  2. 如果两个键都不存在,则引发验证错误,但一次只需要一个
0 投票
1 回答
2098 浏览

python - Flask-Restx 和 Swagger 授权在标头中发送不正确的令牌

我有一个使用 Flask-Restx 和 JWT 令牌身份验证的 Flask REST API,并且正在使用邮递员进行调用。但是,当我尝试使用 swagger 时,发送的令牌不是我通过界面输入的令牌。我的代码如下所示:

然后在招摇页面上,我可以输入我的身份验证令牌: 在此处输入图像描述

当我“试一试”时,我可以看到正确的 x-access-token 被放置在 curl 调用中。

在此处输入图像描述

但是,如果我查看我的请求标头,每次我收到发送到我的服务器的相同 x-access-token 时:

在此处输入图像描述

那么,这个令牌是从哪里生成的呢?以及如何确保我只使用通过接口传递的令牌?

0 投票
0 回答
38 浏览

python - Python Flask API - smtplib 部署后抛出错误

我使用的 API 在我的本地机器上运行良好,但在部署时却不行。我可以正确访问 API,但是,我无法再运行该sendmail函数。这是代码:

这是我收到的错误:flask | smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv\n5.7.14

我目前不使用防火墙,并且允许使用不太安全的应用程序。提供的用户名和密码是正确的,它们在我的本地机器上工作。它在我的服务器上不起作用的原因是什么以及如何修复它?

0 投票
1 回答
2133 浏览

python - 使用 Flask-RestX 制作 RESTful API 时遇到问题:“规范中没有定义操作!” 和“404”

总之,我一直在按照烧瓶 restx 教程制作 api,但是我的端点都没有出现在 swagger 页面上(“规范中没有定义操作!”),每当我调用它们时,我都会得到 404

我主要按照这个https://flask-restx.readthedocs.io/en/latest/scaling.html创建了我的 api

我正在使用 python 3.8.3 作为参考。

我正在做的一个简化示例如下。

简而言之,我的问题是,我错过了什么?目前对为什么这不起作用空白。

目录结构

文件内容

要求.txt

管理.py

项目/初始化.py

项目/视图/初始化.py

项目/视图/test.py

我如何测试和我的期望

所以转到招摇页面,我希望定义的 2 个端点在那里,但我只看到上述错误。

只是在外壳中使用 Ipython,我尝试使用请求来跟踪调用并返回 404。

0 投票
1 回答
58 浏览

flask - 未从 API Gateway 中的 URL 调用 POST 方法

我有一个基本的flask-restx应用程序(main.py)如下:

从代码中可以看出,我在路由上调用了两个GET&方法: 。我已将此代码部署在并使用.POST/greetings/restx/hello/API GatewaylambdaServerless

serverless.yml文件:

在 上API Gateway,当我与仪表板分开测试GET&POST方法时,它们会打印各自的输出。

GET方法截图

在此处输入图像描述

POST方法截图

在此处输入图像描述

我有此服务的以下 URL:https://abcdefgh.execute-api.eu-central-1.amazonaws.com/dev/{proxy+}

当我从浏览器调用 URL 本身时:https://abcdefgh.execute-api.eu-central-1.amazonaws.com/dev/greetings/restx/hello/?name=Alex它总是调用GET如下方法:

在此处输入图像描述

POST方法永远不会被调用。我在做什么错误?