问题标签 [sanic]
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 - Python 3.6 - Sanic Motorengine
我正在尝试设置新的Sanic
Web 框架(承诺非常快)motorengine
以实现 100% 异步。
到目前为止我的设置:
不幸的是我得到:
为什么会崩溃?
python-asyncio - 如何重用 aiohttp ClientSession 池?
文档说要重用 ClientSession:
不要为每个请求创建会话。您很可能需要每个应用程序一个会话来完全执行所有请求。
会话内部包含一个连接池,连接重用和保持活动(默认情况下都打开)可以提高整体性能。1
但是文档中似乎没有关于如何做到这一点的任何解释?有一个可能相关的示例,但它没有显示如何在其他地方重用池:http: //aiohttp.readthedocs.io/en/stable/client.html#keep-alive-connection-pooling-and-cookie-分享
这样的事情是正确的方法吗?
gunicorn - 如何在没有 WSGI 的情况下为 Gunicorn 配置 ExecStart?
Systemd 和 Gunicorn 需要某种 wsgi 文件作为最后一个参数ExecStart
:http ://docs.gunicorn.org/en/latest/deploy.html?highlight=ExecStart#systemd
使用 Django,这在主模块中为wsgi.py
:
但是这个文件在使用 Sanic 和 uvloop 时显然是不存在的(我相信新的协议叫做 ASGI)。我尝试用它代替它,app.py
这并不奇怪:
使用Sanic的时候这个参数应该怎么配置?
python-asyncio - 如何在发送响应之前等待 5 秒(不阻塞)?
这似乎是可能的,因为app.Sanic.handle_request()
有这个片段:
这就是awaitable
Python 的检查方式:
我知道用来async def
创建一个可等待的函数,但我不知道如何创建一个可等待的HTTPResponse
实例。如果可能的话,用一个简单的方法来查看一个可等待响应的示例真的很有帮助await asyncio.sleep(5)
。
尝试了 Mikhail 的解决方案,这是我观察到的:
raise500
进入asyncio.sleep()
ret500
不进asyncio.sleep()
(bug)raise500
阻止其他raise500
(错误)raise500
不阻塞ret500
- 无法判断是否
ret500
会阻止其他ret500
,因为它太快了(不睡觉)
完整代码(通过另存为 运行test.py
,然后在 shell 中python test.py
并转到http://127.0.0.1:8000/api/test
):
python - 部署 Sanic Raw
Sanic似乎是 Python 的高性能 Web 框架(服务器)。根据使用其他框架(包括 Flask 和 Django)的经验,我知道出于安全原因,通常建议将 Python 服务器放在 Nginx 等另一台服务器(例如反向代理)后面。这如何转化为 Sanic 或运行 Sanic 的 gunicorn 服务器?有没有人有这方面的经验。我想知道将 Python 服务器暴露给 Web 是否安全。
python - sanic 事件循环和高速公路
我有一个用Sanic编写的项目
我的网站有一个实时操作部分
对于实时部分,我想使用带有 sanic loop的高速公路
我有自定义聊天协议
和聊天工厂:
我得到了健全的事件循环并将工厂设置为 ChatFactory
上面的代码失败:
和问题:
A:我可以在高速公路上使用 sanic 事件循环吗?
B:如果是,应该怎么做?
python - 浏览器未在后续请求中发送 cookie
使用 cookie 进行用户识别的项目。
当用户到达时,它调用服务(在 localhost 中运行),服务发送带有响应头的 cookie 如下所示:
响应标头如下所示:
然后在特定的用户操作之后,应用程序正在发送以下 API 请求:
上述请求的请求标头如下所示:
我期待cookie(random_id_123_123)与第一个请求一起接收,因为响应标头将是第二个请求的请求标头。
该网站运行在:http ://local.com:8080 (它实际上在本地机器上运行,我的 vhost 配置指向 127.0.0.1 local.com)并且它由 python 提供服务SimpleHTTPServer
。
设置 cookie 的后端服务也在 localhost 的 8000 端口上运行。似乎我在实施过程中遗漏了一些东西。那是什么?
编辑:这是代码。
aiohttp - 测试 Sanic 文件上传
在查看文档时,我看到了一个很好的示例,说明了如何测试一个 sanic 应用程序。
现在我正在尝试让测试框架接受上传到端点的照片。我的代码通过以下方式工作:
它给出了一个错误,提示我无法传递文件。测试框架不支持吗?
python - 同时使用sanic和telepot超时上下文管理器错误
我正在尝试创建一个与 Telegram 通信的网络应用程序。并尝试将Sanic
Web 框架与Telepot
. 两者都有asyncio
基础。现在我遇到了一个非常奇怪的错误。
这是我的代码:
我得到的错误是:
Telepot
insideaiohttp
用作依赖项和 HTTP 调用。如果我只使用aiohttp.web
.
我不确定这个问题与哪个项目有关。redis
此外,我以相同方法连接的所有其他依赖项(例如,数据库连接)都运行良好。
任何建议如何解决它?
python - 多客户端流式 Websocket 端点 (Python)
最近我陷入了“加密狂热”,并开始在一些交易所编写自己的 API 包装器。
特别是 Binance 有一个流式 websocket 端点。
您可以在其中流式传输数据,但通过 websocket 端点。我想我会用 sanic 自己尝试一下。
这是我的 websocket 路线
现在我在 2 台不同的机器上有 2 个客户端连接到它
但是,只有一个客户端能够连接并接收来自服务器的发送数据。我假设由于while
循环阻塞并阻止其他连接连接,因为它没有连接yield
?
我们如何在不阻塞其他连接的情况下使其流式传输到多个客户端?
我考虑增加更多的工人,这似乎可以解决问题,但我不明白那不是一个非常可扩展的解决方案。因为每个客户都是自己的工人,如果你有数千个甚至只有 10 个客户,那么每个客户 10 个工人 1 个。
那么币安是如何进行 websocket 流式传输的呢?或者地狱如何推特流端点工作?
它如何能够为多个并发客户端提供无限流?因为最终这就是我想要做的