问题标签 [quart]
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.
python - 使用 Quart 的扩展 Quart-OpenAPI 进行 pytest 测试的完整示例在哪里?
我想将 pytest 与 Quart 的扩展 quart-openapi 一起使用,但文档示例和谷歌搜索没有帮助。
我在哪里可以找到与 quart-openapi 一起使用的 pytest 测试工具的具体示例?
到目前为止,我已经阅读了这些来源:
项目结构为:
app/__init__.py
:
api.py
:
test_endpoint.py
:
实际结果:ERROR at setup of test_app ... fixture 'app' not found
预期结果:我可以使用 pytest 使用 quart-openapi 进行测试。
python - 使用 Quart/Flask 上传多个文件会添加文件对象以形成字节,而不会添加到文件中
我有一个网页(网络应用程序),允许用户将文件上传到服务器。服务器端是 Python Quart(async Flask),在 Nginx 后面有 hypercorn 服务器。
问题,我无法上传多个文件。单个文件上传没有任何问题,一切都按预期工作。
我已经阅读了与此相关的所有堆栈溢出帖子,并且尝试了无数建议的解决方案。这种情况不同,当表单用单个文件提交时,文件对象包含在请求的“文件”部分中,但当提交多个文件时,请求的“文件”部分为空,文件-对象包含在具有正确键的“表单”中,其值是“字节”对象。
HTML 表单是:
通过 JS 将表单添加到页面客户端,并使用 Fetch 请求异步提交表单。请求头是:
请求有效载荷是:
在服务器上:
当提交单个文件时,在上传中找到“附加”键,并且“打印”显示正确的多字典对象。'attach' 键不在 form_data 中。当提交两个或更多文件时,上传的长度为 0,然后在 form_data 中找到“attach”键,并将字节对象作为值。
我确定这个问题是由“await request.files”引起的,但我不知道为什么或如何解决这个问题。
python - 从异步函数调用同步函数
我正在尝试移植一个flask
应用程序quart
以使用asyncio
. 我认为我目前的方法行不通,因为我的整个函数链都是在没有考虑异步的情况下编写的 - 请考虑以下几点:
如果long_running_task
及其整个函数调用链未声明为async
,我实际上是否从我的路由声明中获得任何好处async
?
python - 如何从 Flask(Quart)应用程序与 couchbase 服务器建立异步连接?
我正在尝试将 Flask 应用程序转换为 Quart 应用程序以添加异步模块并获得一些性能,如本文所述。为此,我使用 acouchbase.Bucket 对象连接到 Couchbase 存储桶。问题是夸脱速度较慢,并且在负载测试期间崩溃。这是我正在尝试的代码:
应用程序编译没有问题,但在负载测试期间它表现不佳并在一段时间后崩溃。一个非常相似的烧瓶应用程序(没有任何异步模块)比 quart 应用程序快,但您会期望带有异步模块的 quart 比烧瓶应用程序快:
Flask 等效项如下所示:
这是 quart 应用程序与烧瓶应用程序的比较。Flask 看起来比 Quart 应用程序快 10 倍,后者在测试后停止并出现此错误_96930 分段错误_。
任何答案/建议表示赞赏。
flask - 什么会导致 Flask-WTForms 为每个字段返回 None ?
当我在本地运行应用程序时,我有几种形式都按预期工作。
但是,当我尝试在通过 nginx 代理的同一个应用程序上使用任何表单时,每个表单都会None
为每个字段返回。
如果我打印form.data
它返回:
浏览器将表单数据/发布请求数据显示为:
nginx 配置的相关部分:
我知道这与我的 Quart 代码本身无关,因为它是在本地使用开发服务器时可以正常工作的相同代码(git 克隆)。
什么可能导致这种情况发生。
javascript - How to use javascript data in Quart/Flask/Jinja2 template tag?
I am using websockets within my Quart app in place of ajax. The aim is to be able to post a comment. A Quart websocket endpoint handles the backend side of things, and then I would like to append the comment to the page instantly from the data received from the websocket. This all working fine until I want to use either a template filter or utility context processor. I think some code will people to understand, so here is my websocket method in JavaScript/jQuery:
I have marked where the problem is in the code (it's at close to the bottom).
I receive an exception:
Which is expected at this point because within the jinja tag itthinks we are using python variables.
Is there a way to be able to do this?
python - python发出post文件请求
大家好,我正在开发一个 Python 3 quart asyncio 应用程序,并且正在尝试围绕我的 http API 设置一个测试框架。
Quart 具有构建 json、表单和原始请求的方法,但没有文件请求。我相信我需要自己构建请求包并发布“原始”请求。使用邮递员我可以看到请求需要如下所示:
如果存在一种方法,我不希望自己对此进行编码。
Python 中是否有一个模块,我可以在其中构建原始数据包数据并使用 Quart API 发送它?
我尝试过使用夸脱请求:
任何建议将不胜感激。
干杯。米奇。
python - 不覆盖处理程序的路由层次结构
我正在写一个烧瓶应用程序。拥有多个端点是有意义的,如下所示:
但是,如果我尝试在蓝图中声明它们,我会得到一个AssertionError: Handler is overwriting existing for endpoint _blueprintname_._firsthandlername_
有没有办法解决?我知道以前在 .net core 等技术中已经直接完成了。提前致谢。
websocket - Quart(异步 Flask)应用程序中的 Autobahn websocket 客户端
各位晚上好。我对这个地方并不陌生,但最终决定注册并寻求帮助。我使用 Quart 框架(异步 Flask)开发了一个 Web 应用程序。现在随着应用程序变得更大更复杂,我决定将不同的程序分离到不同的服务器实例,这主要是因为我想保持 Web 服务器的清洁、更抽象和无计算负载。
因此,我计划将一台 Web 服务器与几个(如果需要)相同的过程服务器一起使用。所有服务器都基于quart框架,现在只是为了简化开发。我决定使用 Crossbar.io 路由器和高速公路将所有服务器连接在一起。
问题就在这里发生了。我关注了这个帖子:
使用 autbahn.asyncio.wamp 以非阻塞方式运行多个 ApplicationSession
如何使用高速公路异步实现交互式 websocket 客户端?
我如何将交叉开关客户端(python3,asyncio)与 tkinter 集成
如何从协议外部发送 Autobahn/Twisted WAMP 消息?
似乎我尝试了所有可能的方法来在我的 quart 应用程序中实现高速公路 websocket 客户端。我不知道如何使它成为可能,所以两件事都可以正常工作,无论 Quart 应用程序是否有效,但高速公路 WS 客户端是否无效,反之亦然。
简化我的夸脱应用程序如下所示:
在这种情况下,应用程序卡在跑步者循环中并且整个应用程序无法工作(无法服务请求),只有当我通过 Ctrl-C 中断跑步者(高速公路)循环时才有可能。
启动后的CMD:
按 ctrl-C 后:
如何使 quart 应用程序与高速公路客户端以非阻塞方式一起工作成为可能?因此高速公路打开并保持与 Crossbar 路由器的 websocket 连接,并在后台静默监听。