gpt4 book ai didi

python - 在 Tornado 应用程序中使用 Django - 无法访问 Tornado 应用程序启动后创建的 MySQL 记录

转载 作者:行者123 更新时间:2023-11-29 06:36:47 29 4
gpt4 key购买 nike

我有一个 tornado.websocket.WebSocketHandler 的子类。在该类中,我有一个方法使用 Django ORM 从子类模型中获取用户:django.contrib.auth.models.AbstractUser。抓取用户的代码如下:

user_model = get_user_model()

try:
user = user_model.objects.get(pk=user_id)
return user
except user_model.DoesNotExist:
return None

注意:如果对应于 user_id 的用户在 Tornado 脚本启动之前就在数据库中,那么这绝对没问题。

但是,如果我在脚本启动后创建一个新用户,上面的代码总是返回 None。就好像脚本在脚本启动时只能访问数据库的快照一样。我什至尝试运行原始 sql 查询,结果完全相同:

cursor = connection.cursor()
cursor.execute("SELECT * FROM custom_user_table WHERE id = %s", [node_id])
row = cursor.fetchone()

运气不好。

最佳答案

根据 Ben Darnell 的代码,只需执行以下操作:

from django.db import connection

if user_id is None:
return None

try:
connection.queries = []
user = user_model.objects.get(pk=user_id)
connection.close()
return user
except user_model.DoesNotExist:
return None

关于python - 在 Tornado 应用程序中使用 Django - 无法访问 Tornado 应用程序启动后创建的 MySQL 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24088825/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com