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

标签 python django google-app-engine google-cloud-datastore django-nonrel

当将 Google App Engine 与 Django-nonrel 结合使用时,有没有办法利用 Async Datastore API当我使用 Django API 声明我的模型类时?

最佳答案

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

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

from google.appengine.api import datastore

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

例如:

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

对于执行一个简单的查询(似乎 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/

相关文章:

Django 表单 : editing multiple sets of related objects in a single form

google-app-engine - 如何从 Google Developer Console 中的项目中删除自己?

python - Imgur API 不会从相册中删除图像

python - 使用 padas 读取文本文件以获取特定行

python - 在 python 中使用带组的正则表达式从字符串解析参数

python - time.gmtime() 在armhf平台上导致OverflowError

python - 使用 Python 将数据发布到 Microsoft Graph

python - Django 管理器链接

python - Django默认用户权限

javascript - GAE channel api解析onmessage