问题标签 [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 回答
33 浏览

python - 为单元测试禁用/修补 flask_of_oil OAuthFilter 装饰器

我创建了一个简单的烧瓶应用程序,它需要使用令牌持有者身份验证调用一些端点。不透明令牌使用 flask_of_oil OAuthFilter 装饰器和正确的客户端和秘密组合进行验证。这按预期工作,并使用 @oauth.protect() 装饰器正确验证所有请求的令牌。但是,在运行单元测试时,我需要禁用身份验证例程。

在导入模块之前,我尝试在文件顶部使用类似 unittest.mock.patch 的东西将 oauth.protect 装饰器覆盖为虚拟 lambda。

有没有办法保留 app.py 的所有功能并在测试范围内“删除”@oauth.protect()?除了简单的脚本之外,我对使用 Python 进行任何操作都很陌生,所以我有点不知所措,任何指针都将不胜感激。

以下是工作应用程序和我的基本单元测试设置的简化示例:

应用程序.py:

test_foo.py:

0 投票
0 回答
41 浏览

python - python 装饰器用另一个装饰器包装并修改函数 args

我正在为我的 api 使用flask-restx
(a)@namespace.expect(schema)装饰器生成自动文档,
(b) 和RequestParser解析器

这里输入的请求是运行良好并实现 (a) 和 (b) 的代码:

为了防止为每个 api 编写解析器,我决定扩展flask_restx.Namespace类,并添加我自己的装饰器,它将:
(a)@expect在函数上添加装饰器
(b)从模式生成解析器并将解析的 args 添加到post功能_

这是类的实现:

不幸的是,当我这样做时self.expect(..),装饰器中的返回没有给出结果(没有文档出现),解析(包装器函数)运行良好

如果我替换
return self.expect(self.schema_model(schema_name, schema), validate=True)(decorator)

return self.expect(self.schema_model(schema_name, schema), validate=True)
then 文档确实出现了,但是解析的内部包装没有效果

一个装饰器用另一个装饰器包装给定函数修改函数参数的正确方法是什么?

0 投票
1 回答
36 浏览

flask - 如何更正烧瓶休息 api 的响应格式?

我正在使用flask flask-restx. 我希望我的所有回复都像这样格式化

我什么时候GET在以下 URL 上发出请求,它返回

这是预期的,因为我在类中没有get方法QuizController,如何自定义此错误消息

0 投票
0 回答
14 浏览

flask-restx - 如何更改 Flask-Restx 中的按钮文本?

我正在使用 Flask-Restx(flask-restx==0.5.1) 作为 API。

我想知道当我添加带有 action =“append”的参数时是否有任何方法可以更改按钮文本。我的代码行如下

结果如下所示:

在此处输入图像描述

我想将“添加整数项”更改为“添加新 id”。有没有办法做到这一点?

0 投票
1 回答
22 浏览

flask-restplus - Flask-RESTPlus 资源类的生命周期是多少?

基本上我需要知道我是否可以@functools.cached_property在 Flask-RESTPlusResource子类中使用来缓存一个昂贵的操作或协作者构造,这些操作不应超过单个请求。

我想有两种可能:

  1. 为路由到该资源的每个 HTTP 请求重新创建一个Resource子类实例。
  2. 一个Resource子类实例在创建 API 时创建一次,并在 API 的生命周期内为路由到该资源的每个请求重用。

对象/实例上的缓存仅适用于案例 1。@cached_property实际上是一个惰性计算的实例变量,其值在首次使用时计算并存储在实例变量中,然后在每次连续访问/调用时从该变量提供服务。我希望该机制实际上是一个描述符,但概念是相同的。

无论如何,我需要为每个请求使用不同的值,我只需要在处理单个请求的过程中多次使用它,并且我需要为该请求只计算一次该值。

@cached_property在 Flask-RESTPlusResource子类上按我需要的方式工作吗?

0 投票
0 回答
54 浏览

python - flask-sqlalchemy 加入关联表中的所有匹配项

我在 Flask 中做一个项目,我对 Flask-SQLAlchemy 有困难。

当我提出请求时,我得到如下输出:

如何重做查询以获得这种结果?

或类似的东西,以便流派列表是一行,以便进一步将其转移到 flask_restx -> Resource -> json

0 投票
0 回答
14 浏览

python - 在 Flask-restx API 中持久化对象的最佳实践?

我正在使用 flask-restx 来制作一个 API,它依赖于一个 sklearn-classifier,它需要一些时间来加载,但随后会非常快速地从输入中计算值。天真地,人们可能会做类似下面的代码的事情。

然而,这给每个 API 调用增加了非常大的开销,因为在每个调用中都会实例化 'Foo' 对象。在调用之间保持“Foo”对象以避免这种开销的最佳做法是什么(如果存在)?

请注意,所讨论的对象对于每个用户或会话来说并不是不同的,就像在这个问题中一样。相反,对于 API 的每次调用,Foo 对象都是相同的。

0 投票
0 回答
21 浏览

flask - 如何从 current_app 访问环境变量?(RuntimeError:在应用程序上下文之外工作)

(对不起,我的英语不是很完美)我正在使用flask 和flask-restx 制作一个应用程序。为了在生产环境和开发环境之间进行更改,我设计访问环境变量以更改环境(如服务器 IP 和端口)

最后,我发现有'current_app',并写入从数据库模型文件中访问变量。但出现错误消息。然后我在官方文档中搜索了此消息并再次编写了以下解决方案,但错误消息仍然存在。

你可以帮帮我吗?

这是我的代码

数据库.py

应用程序.py

这是执行代码

0 投票
1 回答
114 浏览

python - Api 端点未在 Flask-Restx 中注册

我一直在学习一些教程(基本示例),尝试使用 Flask-Restx 创建一个 RESTful API。但是,当我尝试使用更复杂的项目结构注册端点时(按照此示例),没有注册任何 API 端点。我定义了端点的命名空间并尝试在 app.py 中注册它:

API init .py 如下所示:

和我要注册的端点:

虽然 @app.route('/') 在 app.py 中工作,但 @ns.route('/') 仍然不成功,我不知道为什么。

0 投票
0 回答
53 浏览

python - 使用 Flask restx 创建带有选项的端点

我正在尝试从 python 创建一个端点,它允许我从选项列表中选择一个选项。我正在使用烧瓶restx。

我想要类似的东西:

在此处输入图像描述

其实我在想这样的事情:

但我不知道该怎么做。谢谢。