gpt4 book ai didi

python - Django (nonrel)、App 引擎和异步数据库调用

转载 作者:行者123 更新时间:2023-11-28 23:04:31 26 4
gpt4 key购买 nike

将 Google App Engine 与 Django-nonrel 一起使用时,有什么方法可以利用 Async Datastore API当我用 Django API 声明我的模型类时?

最佳答案

好的,我已经进行了更多调查,并找到了一种替代方法来处理拥有 Django 模型(即:那里的所有 Django 功能)并且仍然可以访问异步 API...

主要是直接使用数据存储:

from google.appengine.api import datastore

而且我已经有了将所有模型与 json dict 相互转换的方法,因此,主要的问题是发现 Django-Nonrel 在幕后是如何做到的:

例如:

考虑使用 to_json 和 from_json 方法的“项目”类(即:从字典创建)

为了做一个简单的查询(似乎 Run() 会异步完成工作,所以,可以先执行 query.Run() ,然后再启动另一个 query.Run() ,两者会同时工作):

query = datastore.Query(Project._meta.db_table)
for p in query.Run():
p['id'] = c.key().id() #Convert from app engine key
print Project.from_json(p)

现在,使用 API 异步获取对象:

from djangoappengine.db.compiler import create_key
async = datastore.GetAsync(create_key(Project._meta.db_table, project_id))
p = async.get_result()
p['id'] = c.key().id() #Convert from app engine key
print Project.from_json(p)

因此,可以保留具有 Django 结构的模型,并在需要时一些包装器异步执行所需的工作。

关于python - Django (nonrel)、App 引擎和异步数据库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7550083/

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