django - Django 从 sync_to_async 数据库调用中读取数据
问题描述
我正在尝试在异步函数中读取一些我需要从数据库中获取的数据。所以我用频道 sync_to_async 函数包装它。现在的问题是如何访问从数据库中检索到的实际数据?目前它只是这样输出:<channels.db.DatabaseSyncToAsync object at 0x7f7b672ea6d0>
代码:
from ...models import admin_list
from channels.db import database_sync_to_async
def get_admins():
return admin_list.objects.values('name')
@bot.event
async def on_message(message):
admin_names = database_sync_to_async(get_admins)
print(admin_names)
解决方案
database_sync_to_async
返回 a awaitable
,您必须等待它。
from ...models import admin_list
from channels.db import database_sync_to_async
@database_sync_to_async
def get_admins():
return admin_list.objects.values('name')
@bot.event
async def on_message(message):
admin_names = await get_admins()
print(admin_names)
推荐阅读
- reactjs - 是否可以将用户搜索过滤器添加到 React Admin v3 中的 ReferenceManyField?
- javascript - 谷歌地图自动完成,无法解析输入,因为自动完成添加了 unicode 字符而不是文本
- service - RabbitMQ 交换/队列设计 - 一条或多条消息
- python - Discord Bot Python add_roles
- c# - 如何在VS 2019上使用.net core版本v3.1.0-preview1?
- javascript - 获取整个 DOM 包装边界客户端矩形
- javascript - 通过 HOC 提供数据,但在调用组件属性时,类型“{}”中缺失但类型“”中出现错误
- vb.net - 在 Math.NET Symbolics 中,ArcCos 函数与 SymbolicExpression
- sql-server - 带有日期和 date-1 参数的存储过程
- apache-spark - Hadoop 数据管道用例