问题标签 [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 回答
246 浏览

python - Sanic 表单验证无声无息地失败

大家好,我正在将 Sanic 与 WTForms 和 Sanic-WTF 一起使用。我的 SignUpForm 有以下代码:

我也将此作为我在基于类的视图中的验证的验证。

我不知道发生了什么。我也尝试过form.validate() 我的注册表单是

0 投票
1 回答
12314 浏览

python - 当我使用 sanic 和 aiohttp 时出现错误 [TypeError: 'coroutine' object is not iterable]

我用 Sanic 构建了一个小型 Web 服务器,这是其中的一种观点:

并且错误都发生在get_bilibili_query, get_v_qq_query, ..., 函数get_bilibili_query的代码:

函数获取:

只需使用 aiohttp.ClientSession 方法 [get]

错误详情:

但是,如果我直接运行该函数,则不会发生错误!请帮忙

0 投票
1 回答
3920 浏览

python - 如何从异步函数 websocket.send() 数据

我正在学习 asyncio 并试图弄清楚如何将数据从一个异步函数传递到另一个异步函数中的 websocket 循环。

在我的场景中,某些第三方将数据发布到 Web API。我想将 POST 数据回显到连接的 websocket 客户端。

Sanic 和 Rx 不是必需的,但这是我开始的路径。到目前为止,这是我想出的:

这显然是行不通的,因为 observable_message() 需要消息作为 arg,而我正试图用它来 start_async(),所以我很难过。我怎样才能把这些东西连接起来?

客户端可以是微不足道的:

0 投票
2 回答
742 浏览

python - sanic - 如何指定所需的 JSON?

我想为控制器get/post方法指定所需的 JSON,以便它在 SwaggerUI 中显示。

例如,我想request.json看起来像这样:

我像这样初始化 SwaggerUI:

如何使两个键都显示在 中parameters在此处输入图像描述

0 投票
3 回答
5879 浏览

python-3.x - 如何在 Sanic 中执行文件上传

我正在尝试在 Sanic 上执行文件上传,但它无法正常工作,flask 的正常语法似乎不适用于 sanic。

我什至无法访问文件名或保存方法以将上传的文件保存到给定目录。

0 投票
1 回答
2561 浏览

python - Sanic 和 Motor 使用不同的事件循环

我是 Sanic 的新手,我正试图让它与 Motor 一起工作。我确实设法让所有东西都在一个文件中工作,但是,当我在我的项目结构中尝试它时,我遇到了以下问题。

我做了一些研究,正如 Sanic 的 GitHub 页面上所提到的,尝试了 db setup 的“before-server-block”部分。但是,这适用于单个文件,而不适用于我的项目结构。

我的项目结构类似于:

项目结构

下面是我的代码。我以更简单的结构重新创建了这个问题,而没有失去本质。

src/MyPackage/Model/user.py

src/MyPackage/UC/user_uc.py

src/DAO/motor_connection.py

src/DAO/user_DAO.py

src/MyPackage/REST/user_REST.py

最后是主程序...

src/MyPackage/main.py

我没有包含任何子包的init .py 文件。我在这些文件中所做的唯一一件事就是将类带到子包级别。

据我所知,当导入 User_Rest 类时,似乎在 main.py 中,该类又导入 User_UC 类,该类导入 User_DAO 类,该类又导入 Motor_Connection 类 - 这是发生混乱的地方。这会创建一个单独的事件循环,Sanic 不共享该循环。

所以,如果我的理解是正确的,所有链接的导入类都使用一个事件循环,而 Sanic 使用另一个事件循环。我知道我们不能有 2 个事件循环,但我无法弄清楚需要做些什么来解决这个问题。

请帮忙。提前致谢。

0 投票
2 回答
1694 浏览

python - Python等待一个内部有循环的函数

我使用Sanic作为服务器并尝试同时处理多个请求。

我已经将 await 用于编码功能(我使用 for 循环来模拟做某事)但是当我time curl http://0.0.0.0:8000/在两个单独的控制台中尝试时,它不会同时运行。

我搜索了谷歌,但只找到 event_loop 但它是安排注册的conroutines。

如何等待 for 循环,以免阻止请求?

谢谢你。

0 投票
2 回答
3373 浏览

python-3.x - 如何将默认的 sanic 日志目录更改为自定义目录?

Sanic 目前支持 Linux 日志目录为 /dev/log,如果该目录不存在,日志将无法工作。如何将目录更改为自定义目录?

0 投票
5 回答
28089 浏览

python - Gunicorn - 没有访问日志

目前我正在使用 gunicorn 作为守护进程运行我的 sanic(微框架)网络服务,我想将所有日志保存在文件中(访问和错误)

我的配置:

接下来我启动网络服务:

Sooo ..我的错误日志有效,但我绝对没有访问日志..

文档中没有关于此问题的提示,有人可以帮助我吗?

谢谢和问候!

0 投票
0 回答
318 浏览

python - 字典 get() 抛出键错误

我正在使用 python 字典保持一个简单的连接池。作为参考,如果这很重要,我将在 Sanic 中使用 asyncio

不经常,但有时,我得到这个错误:

我的问题是 - 如何使用.get()可能的关键错误?在什么情况下会发生这种情况?我注意到的一件事是,此错误仅在我运行并发请求时发生,尽管很少发生。

据我了解,asyncio 使用事件循环,因此它会在等待时安排任务并暂停任务。所以在我看来,两个以上的并发请求永远不应该同时击中同一个字典。

提前致谢!