问题标签 [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.

0 投票
1 回答
2361 浏览

python - 使用 websockets 在 Python / Quart 中检测客户端断开连接

我有多个客户,我存储在一个列表中(已连接)。当客户端(浏览器)关闭时,我想从连接的 websocket 列表中删除这个 websocket。

我尝试了 pgjones 编写的方法,稍作改动(https://medium.com/@pgjones/websockets-in-quart-f2067788d1ee):

......

在代码中进一步......

......

在 update_clients 中应该有一些检测到发送到不再存在的 websocket 出错了......然后将其删除。但也不例外……?!

我也试图:

但是还是没有出现异常...

0 投票
2 回答
1091 浏览

mongodb - 使用电机连接到 MongoDB 时,Asyncio(Quart)抛出附加到不同循环错误的任务

我使用 MongoDB 和 Motor.Asyncio 创建了一个带有 Quart 的 webapp。当应用程序尝试查询数据库时,会引发错误:

我不明白为什么会发生这种情况,也不知道如何解决。

该应用程序一直运行没有问题,但我决定从 Python 3.6(在 Ubuntu-18.04 上)升级到 python 3.7.1。有了这个,我将 Quart 升级到 0.9.0。由于此升级,发生了上述错误。

该应用程序使用 Hypercorn 和 Nginx 从命令行运行。

在这种情况下,我不确定我的代码的哪些部分是相关的

我先导入 Quart,然后再导入 Motor:

在此之后,我添加:

我试过在电机导入块之前移动它,它没有改变任何东西。

正如问题/答案中所建议的: RuntimeError: Task attach to a different loop 我添加了:

那并没有解决它。

这是第一次调用电机的块,错误发生的地方:

我可以忽略错误并继续,但随后进行下一次调用并发生相同的错误。

我知道 Quart 在默认的 event_loop 上工作,应该不需要为电机创建一个特殊的循环。它在以前的版本中没有它的工作。所以我完全不知所措。

0 投票
0 回答
64 浏览

websocket - 如何在 `@app.websocket` 装饰函数之外使用 websocket 向客户端发送消息?

我正在使用quart作为网页游戏的后端。我有一个游戏事件循环的存根和一个优先级队列,当某些事情从优先级队列中完成时,游戏循环会做进一步的处理,然后需要向一个或多个玩家发送更新。这是游戏事件循环的简化版本:

我认为装饰game_loop可以quart.copy_current_websocket_context让我使用全局 websocket 对象向玩家发送东西,但事实并非如此:

确实,我使用了错误的装饰器,但是我想要实现的是使用 websocket 向玩家发送消息,知道我需要做什么吗?

0 投票
1 回答
446 浏览

python - Quart Bad Request 语法或不支持的方法

Windows 上的 Python 3.7

从夸脱运行样品时

运行http://127.0.0.1:5000/ws时,得到

0 投票
2 回答
12287 浏览

python - RuntimeError:任务得到未来连接到不同的循环

如何在 Quart 的另一个异步方法中调用在主线程中获取事件循环的异步方法?

t.py

应用程序.py

错误:

如何将事件循环传递给夸脱?我试图获取循环并设置内部函数但仍然出现错误

0 投票
1 回答
96 浏览

gzip - 如何将 gzip 压缩添加到为 Quart 应用程序提供服务的 Hypercorn 服务器

我有一个在 hypercorn (0.6) 服务器上运行的夸脱应用程序。(EC-2 亚马逊 Ubuntu 18)

页面加载太慢,建议之一是添加 gzip 压缩。

这个事情谁有经验?

亲切的问候,亚历克斯

0 投票
2 回答
1046 浏览

heroku - 如何在命令行中将 asyncio.get_event_loop() 传递给 quart?

在一个文档中,他们将事件循环传递给 quart。需要在路由处理程序中调用异步方法。

如何将此更改为heroku的命令行?

我试过了

但还是得到了

对此的跟进问题


How to get an event loop from Quart here 说 quart 的 app.run() 使用由 asyncio 为主线程创建的默认事件循环 那么他们为什么要通过循环呢?

0 投票
1 回答
824 浏览

python - Hypercorn - 在文件夹中找不到 __main__ 模块

我正在使用带有 debug=True 的 Quart(Flask async) 及其内置 Hypercorn 服务器,但是每次我保存文件并且应用程序尝试重新启动时,我都会得到:

C:\Users\myusername.virtualenvs\App-GtW9WS3s\Scripts\python.exe:在 'C:\Users\myusername\OneDrive' 中找不到 '__main__' 模块

我认为这与 Hypercorn 有关,但老实说,它可能是任何东西,关于这个错误的问题有很多不同的解决方案。

我在 Windows 10 中运行 Pipenv 毫无价值。

运行.py:

应用程序/__init__.py :

0 投票
1 回答
112 浏览

python - 错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT?

@app.before_serving导致这个吗?


线程 Thread-2 中的异常:发生的地方

0 投票
1 回答
70 浏览

python - Jinja2 - 对象在 for 循环中表现不同

我有一个对象(一个名为 tortoise-orm 的 ORM 的 QuerySet 结果,但我认为这并不重要)如果我使用 Jinja2 的 for 循环对其进行迭代,它的行为会有所不同。

将对象tasks视为可迭代对象。

例如,这工作正常,它输出每个负责的任务的名称,这是我目前正在使用的修复:

但这只会创建一堆<li>没有错误的空白:

这也很好用:

所以,敲了半天头,我觉得可能和Jinja如何访问iterables以及这个特定对象如何实现自己的iterable有关,但是由于我不愿意修改任何一个库,我只是在寻找一个解决方案,也许是一个关于如何避免未来此类问题的简单解释

这里会发生什么?