问题标签 [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 - 在 Sanic 路由参数中指定布尔值
在 Sanic 中,可以在传入 URL 的路由参数中指定各种原始类型,例如<param:int>
or <param:number>
,以便接收请求参数的函数可以自动正确解析类型。
但是,<param:bool>
不起作用。Sanic 不支持布尔值,还是我使用了不正确的关键字?
我的错误信息:
我的代码:
我还尝试了其他拼写,例如 Boolean 和 BooleanType 无济于事。Sanic 的版本是 0.7.0,在 virtualenv 中使用 Python 3.6.5。
python - RedisClusterException:使用连接池时redis中的连接太多
我正在使用 aredis 来处理连接池。以下是我如何在 main 函数中实例化 redis 连接 -
以下是协程定义 -
我正在使用 sanic 来运行 Web 服务器。这就是我实例化的方式 -
我的实现在某种程度上是错误的吗?我不知道redis如何重用这些连接?
python-3.x - 等待 db future 完成?
我已经为 sanic 应用程序编写了代码,rethinkdb 被用作后端数据库。我想等待 rethinkdb 连接函数在其他函数之前初始化,因为它们依赖于 rethinkdb 连接。
我的 rethinkdb 连接初始化函数是:
未来解决后将执行的回调函数是
sanic 应用程序:
当我启动这个应用程序时,open_connections 函数中的打印语句在最后执行。
python - aiohhttp 中的会话重用
我尝试重用 HTTP-session 作为 aiohttp 文档建议
不要为每个请求创建会话。您很可能需要每个应用程序一个会话来完全执行所有请求。
但是我与 requests lib 一起使用的通常模式不起作用:
然后我尝试
我有错误
async_timeout 的任何解决方法都没有帮助。
另一种方法是工作:
但这似乎是为每个请求创建会话。
所以我的问题是:如何正确重用 aiohttp-session?
UPD:最小的工作示例。具有以下视图的 Sanic 应用程序
python - 我应该为 aiohttp 和 sanic 等异步框架使用单独的 WSGI 服务器吗?
我有使用 Flask 和 Falcon 的经验,对于在 prod 中运行站点,我使用了单独的 http-servers,例如 uwsgi\unicorn。但是我需要它来现代 Sanic 吗?根据文档,它可以很好地服务器自己的文件。
python - 安装 allennlp==0.3.0 时应该使用哪个版本的 sanic-cors、sanic 和 sanic-plugins-framework?
与 Python 3.6 或 3.7 一起安装时,我应该使用哪些版本的 python 包sanic-cors
、sanic
和?sanic-plugins-framework
allennlp==0.3.0
当我运行时:
我收到错误消息:
后来阻止我的程序依赖 allennlp 运行(RuntimeError: You cannot use Sanic-CORS with sanic < v0.7.0
):
python - 将 HTTP 上传的数据返回到 sanic 服务器
我正在尝试将数据上传到sanic
Web 服务器。为此,我使用 curl 发出 POST 请求。我尝试在 POST 请求后返回一些数据。这背后的基本原理是返回一些现在代表服务器端上传的 ID。但这似乎不起作用。现在我想知道:我的程序错了吗?不curl
写输出?或者这是一个错误sanic
?有人可以在这里帮助我吗?谢谢!
这是 Python 程序:
您可以像这样调用curl
:
这是curl
写入 STDOUT 的内容:
如您所见,text/plain
生成了响应。这应该是application/json
我的数据,不是吗?
macos - pip install sanic:命令 'gcc' 被信号 11 终止
所以我试图在我的 mac os yosemite 上安装 sanic,但由于某种原因,每次我尝试安装它时,它都会返回这个错误。
当我尝试为flask websocket安装vibora(另一个异步Web框架)或eventlet时也会发生这种情况
python - 如何将 Sanic 流对象插入 jinja 异步模板
在 Sanic(python 异步 Web 框架)中,我可以使用以下命令创建流对象输出到 html:
结果:
富吧
使用 Jinja2,我可以在打开异步功能后像这样异步渲染:
我尝试用这个将流对象输出到 Jinja2 模板:
但我得到的只是下载的模板(html 文件)。
我有什么办法可以让 Jinja2template.render_async
接受 Sanicresponse.write
并在流中返回它?
python-3.x - 从 Sanic 中的异步路由调用同步代码的首选方法是什么?
我正在研究 Sanic,因为我们正在寻找基于烧瓶的休息服务的替代品。我对 sanic 的异步特性很感兴趣,但我知道我们会遇到很多根本不支持异步的代码(例如,我们在 DynamoDB 之上使用了大量的 boto3 和一些 ORM,没有其中支持等待)。
所以:我需要找到能够在像 Sanic 这样的异步框架中运行同步代码的最简洁的方法。在 python 3.7 中有一个我觉得很有趣的 asyncio.create_task 调用。
想知道这是否是一种可能的方式:
主要.py:
app_logic.py:
这似乎可行,并且返回的任务对象是常规requests
响应。
但是,我不知道这是否“安全”——例如,我不确定如何调查事件循环并验证它没有以任何方式阻塞。我确信这种方法完全愚蠢还有其他原因,所以把它们放在我身上:-)