问题标签 [hypercorn]

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 回答
1046 浏览

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

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

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

我试过了

但还是得到了

对此的跟进问题


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

0 投票
2 回答
369 浏览

python - 如何将电视节目与超级玉米一起使用?

Telethon 与夸脱

如何将电视节目与超级玉米一起使用?

如何转换以下行

在procfile中,如何传递循环

或者如何使用 hypercorn api?

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 回答
349 浏览

python-3.x - 如何连接 hypercorn 和 starlette 网络框架

我能够使用 gunicorn 和 uvloop 启动并运行它,但很难让它与 hypercorn 一起使用。另一个问题是指定 ASGI 框架的工作人员数量。

0 投票
1 回答
2924 浏览

python-3.x - Python3.7 asyncio启动webserver(FastAPI)和aio_pika消费者

在我的项目中,我尝试启动一个 REST API(使用 FastAPI 构建并使用 Hypercorn 运行),另外我还希望在启动时启动一个 RabbitMQ 使用者(使用 aio_pika):

Aio Pika 提供了强大的连接,可在失败时自动重新连接。如果我使用hypercorn app:app消费者运行下面的代码并且其余接口正确启动,但是从 aio_pika 重新连接不再起作用。如何在两个不同的进程(或线程?)中归档生产稳定的 RabbitMQ Consumer 和 RestAPI。我的 python 版本是 3.7,请注意我实际上是 Java 和 Go 开发人员,以防我的方法不是 Python 方式:-)

0 投票
1 回答
558 浏览

nginx - 即使使用 SSL 证书,Quart 上的不和谐 OAUTH 也会收到 InsecureTransportError

最近我一直在做一个网站项目,该项目允许用户使用他们的 Discord 帐户登录以使用他们的帐户浏览网站。

该网站使用 Flask-Discord 库,Quart 作为我的 WSGI Web 框架,Hypercorn 作为我的生产服务器,Nginx 作为代理将 Web 请求传递到我的 Hypercorn 套接字。我已经使用 Certbot-Nginx 设置了 SSL 证书,并使用 Let Encrypt 作为证书颁发者。但是,在用户被重定向到 Discord 登录页面后,用户登录到 Discord 并向我的 Quart 服务器请求回调我收到以下错误:

该网站已设置并在临时使用 noip 的域设置和 SSL 证书有效的情况下正常工作,使所有请求重定向到 HTTPS 而不是 HTTP。

是否有可能因为 SSL 证书是使用 Nginx 设置的,Python OAuth2 库只是不知道 SSL 证书?考虑到所有请求都被重定向到 HTTPS,这似乎不太可能。

我发现很多人建议防止此类错误,只需更改 OAuth 环境变量以允许不安全的传输,但我不想损害网站的安全性。

关于为什么会发生这种情况的任何想法都会非常有帮助。

谢谢

0 投票
1 回答
1351 浏览

server - 为什么用 Hypercorn 运行 Quart 应用程序/它不是自动的吗?

如果您检查Quart库,app.run()只需建立一些配置然后使用asyncio.run(serve(self, config)),其中 serve 来自from hypercorn.asyncio import serve

因此,即使您通过 运行Quart应用程序python myapp.py,它不是已经在使用Hypercorn服务器了吗?

特别是, this 和 running via 有什么区别hypercorn myapp:app

https://pgjones.gitlab.io/quart/deployment.html

不建议在生产中直接运行 Quart(通过 run())。相反,建议使用 Hypercorn 或替代 ASGI 服务器运行 Quart。Hypercorn 与 Quart 一起安装,默认情况下用于服务请求(例如使用 run())

所以听起来,即使默认情况下使用Hypercorn来服务请求,run()也不建议使用run()? 还有人困惑吗?

0 投票
1 回答
580 浏览

python - Python Quart/Hypercorn 流式响应导致 net::ERR_HTTP2_PROTOCOL_ERROR 200

我有一个 Quart 应用程序,我用它将响应流回客户端。我正在使用 asyncio.sleep 来延迟响应完成,如果我将延迟设置为 59 秒,一切正常。流完成没有任何问题。如果我将时间增加到 120 秒,则响应似乎超时。这是客户端接收到流的第一部分,但大约 60 秒后,浏览器在 Chrome 中抛出错误:net::ERR_HTTP2_PROTOCOL_ERROR 200。Firefox 抛出 TypeError。

我正在将 Hypercorn 与 Nginx 一起使用。

hypercorn config.py 文件内容如下:

nginx.conf 中的相关设置:

我不知道如何解决这个问题。

我找出了问题的根源。它与 Quart、Hypercorn 或 Nginx 无关。问题在于 Cloudflare 和 http2,它是由 WriteTimeout 引起的。请参阅此答案: net::ERR_HTTP2_PROTOCOL_ERROR 是关于什么的?

那么问题是,如何在 Cloudlfare 中改变这一点。

我没有将 Quart 配置为在 http2 中工作,这有帮助吗?

0 投票
1 回答
308 浏览

python - hypercorn:客户端证书验证

我正在尝试在 hypercorn 中启用客户端证书验证。如果重要的话,我正在使用FastAPI文档指导我使用参数--verify-mode并简单地说明:

对等方证书的 SSL 验证模式,请参阅 ssl.VerifyMode 枚举以获取可能的值。

我尝试了一些猜测,但得到了一个致命错误:“hypercorn: error: argument --verify-mode: Not a valid verify mode”

我摸索了一下,在项目历史中找到了这段代码:

所以我这样做是为了验证有效值(Python 3.8):

但是,试图通过0,12to --verify-modeall 会给出“不是有效的验证模式”错误。我可以使用--cert-reqs警告“警告:请改用 verify_mode”来传递这些值,但它会根据我在config.py中看到的代码启动并设置SSLContext verify_mode值。

不幸的是,这似乎没有任何作用。GET当我在浏览器中执行 a 或至少一个错误时,我希望被提示输入客户端证书,因为它被设置为“必需”。但相反,我得到了很好的 200 错误代码响应。

我找不到任何关于使用 hypercorn 执行此操作的好的示例、教程或文档。这里还有什么我需要做的,比如设置一些其他属性吗?任何指导表示赞赏。

0 投票
1 回答
513 浏览

nginx - 在反向代理服务器 + Python HTTPS 服务器中,谁应该处理 HTTPS 连接的 SSL 证书?

假设我想使用 NGinX(可能是另一个,因为它不代理 HTTP/2 请求)和 Hypercorn 的组合。由于两者都可以处理 SSL 证书文件,我想知道谁最适合为 HTTPS 请求执行此操作。Hypercorn 可以监听 443 端口对我来说很重要,我不确定它是否可以在不指定 certfile 和 keyfile 参数的情况下做到这一点。