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

0 投票
1 回答
341 浏览

python-3.x - 如何在 Sanic 中获取推荐网站 url

我正在尝试从 Sanic 中的传入请求中获取推荐网站 URL/服务器名称(而不是 IP 地址)。但是,到目前为止,我已经设法从请求标头中获取连接的 IP 和端口。Sanic 中是否有任何 python 包或内置功能?

0 投票
1 回答
337 浏览

python - 如何将 argparse 参数传递给 sanic 路由?

我希望将 argparse 参数传递给带有装饰器的函数。这里的策略是什么?没有全局变量如何实现这一点?

我也尝试使用视图HTTPMethodView但没有成功

0 投票
0 回答
153 浏览

javascript - Sanic websockets 定期记录“事件”,但“event.data”只记录一次——为什么?

我之前问过这个关于 sanic 中的 websockets 的问题。这是一个跟进。

下面建立一个 websocket 连接,并console.log()准确地发送一次“数据”消息:

在服务器端,“消息”是printed周期性的。但在客户端,这console.logged只是一次。

服务器:

在此处输入图像描述

客户:

在此处输入图像描述

我不清楚为什么它只打印一次,而不是像服务器端那样每秒打印一次。

但是,这里有两个条件 /do/ 使它每秒打印一次。

首先,console.log(event),然后console.log(event.data)定期正确记录。

这会在客户端打印:

在此处输入图像描述

其次,我可以将javascript保持原样,

但使用以下消息,每次都会更改:

在服务器端打印:

这在客户端:

在此处输入图像描述

所以,这两个看似不相关的事情把我的 websocket 没有登录到客户端,并让它这样做。为什么会这样?

0 投票
1 回答
810 浏览

javascript - 与 sanic websockets 进行双向通信,无需永远等待

我问了这些 关于sanic 中的 websockets 的问题。这是一个跟进。

下面让我向我的 websocket 客户端广播消息:

我可以确认服务器既定期向客户端传递消息,又能够接收某种返回的消息。

在服务器上:

在客户端:

在此处输入图像描述

但是,由于以下几个原因,这对我来说没有意义:

  1. 当我提交表单时,我实际上看不到提交的内容,只是有一个 GET 请求。
  2. 我看到一个 GET 请求,但我的表单明确表示 POST。
  3. event.preventDefault()已使用,我仍然在表单提交中看到完整的页面刷新。

但更重要的是,我真正想要的是双向通信。所以,除了 just 之外ws.send(data),我还要new = await ws.recv()在方法中捕获输入。

但现在,我不再连续向客户端发送数据。ws.recv()相反,即使客户端没有发送任何内容,进程也会挂起,等待我。

message在我再次提交表单之前不再发送。

如何进行双向通信,将数据传回/feed端点,但无需等待即可连续进行?

0 投票
1 回答
366 浏览

python-3.x - sanic 如何进行依赖注入?

在我的app.py我有以下代码:

如何将其my_dep注入我的 sanic 应用程序实例?使用上面的当前设置,我无法完全测试我的代码,因为我的路由依赖于模块中加载的全局依赖项。

换句话说:我如何重组这个简单的应用程序,使其易于测试?

0 投票
1 回答
96 浏览

python-3.x - Sanic 如何为测试应用加载配置?

我希望我的测试服务器有一个虚拟配置变量

我有以下夹具:

和一个测试

我收到以下错误:

AttributeError:“SanicTestClient”对象没有属性“config”

我该如何解决?

0 投票
1 回答
837 浏览

python - “AsyncIOMotorLatentCommandCursor”对象不可下标

我正在使用motorclient,并且我有以下查询,我想在其中获得某个用户的平均评分。

然后当我试图提取平均值时 print('avg rating', res['avg_rating'])

这会引发错误TypeError: 'AsyncIOMotorLatentCommandCursor' object is not subscriptable

我已经用谷歌搜索了很多,但我没有找到如何使用motor.

0 投票
1 回答
432 浏览

python-3.x - Uvicorn 没有运行 sanic “before_server_start”

我有一个像这样的 sanic 应用程序:

当我运行 uvicorn myapp 时,它可以很好地服务于主页:我看到了预期的 json。

但是当我打的时候/all,它说

“应用程序没有属性 es_client”

,这可能表明该before_server_start函数尚未运行。

我该如何解决?我已经查看了 sanic doc,但我找不到任何关于这个问题的参考资料

(当我按原样运行应用程序时它工作正常 - 即,python3 myapp.py

0 投票
1 回答
943 浏览

python-3.x - 如何使用 Sanic 提供上传的图片?

我已经使用 Sanic 在我的项目的某个目录中成功上传了图像。我用来上传图片的代码如下:

在这个过程中,我保存了upload_file.name一个user字段。现在要提供上传的图片,我已经访问了以下网址(就像我在本地服务器中一样http://localhost:8000/10414532_479247615552487_2110029531698825823_n.jpg 但它没有显示图像而是显示,

如何提供上传的图片?

0 投票
1 回答
307 浏览

python - Sanic 端点​​中带有可选斜杠的正则表达式

我想用 Sanic ( https://github.com/huge-success/sanic ) 做一个 API REST 并且我坚持使用正则表达式。

我有这个端点:api/foo/<string_with_or_without_slashes>/bar/<string>/baz

我的python代码是:

如果我做:

$ curl -i http://localhost:8000/api/foo/a/a/bar/bb/baz

test1当我想调用test2函数时,它总是被调用。

你能帮助我吗?非常感谢!:)