Django (nonrel)、App 引擎和异步数据库调用
将 Google App Engine 与 Django-nonrel 结合使用时,有没有办法利用
When using Google App Engine with Django-nonrel, is there any way to take advantage of the Async Datastore API when I declare my model classes with the Django API?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
好的,我进行了更多研究,找到了一种替代方法来处理 Django 模型(即:那里的所有 Django 功能)并且仍然可以访问异步 API...
主要是直接使用数据存储:
而且我已经有方法将我的所有模型转换为 json 字典/从 json 字典转换,因此,主要是发现 Django-Nonrel 在幕后如何做到这一点的问题:
例如:
考虑使用 to_json 和 from_json 方法的“Project”类(即:创建从字典)
用于执行一个简单的查询(似乎 Run() 会异步执行工作,因此,可以执行 query.Run() ,然后启动另一个 query.Run() ,两者会同时工作):
现在,使用 API 异步获取对象:
因此,可以使用 Django 结构保留模型,并且在需要时一些包装器异步执行所需的工作。
Ok, I've investigated a bit more and found an alternative way to deal with having a Django Model (i.e.: all Django features there) and still having access to the async API...
Mainly, using the datastore directly:
and I already had methods to convert all my models to/from a json dict, so, it was mostly a matter of discovering how Django-Nonrel did it behind the scenes:
E.g.:
Considering a 'Project' class with to_json and from_json methods (i.e.: create from a dictionary)
For doing a simple query (it seems Run() will do the work asynchronously, so, one could do the query.Run() and later start another query.Run() and both would work at the same time):
Now, using the API to get an object asynchronously:
So, it's possible to retain the model with the Django structure and when needed some wrappers do the needed work asynchronously.
不可以。Django 框架提供了自己的数据存储接口,在直接支持异步调用之前,不可能进行异步调用。
No. The Django framework provides its own interface to the datastore, and until it supports asynchronous calls directly, it's not possible to make asynchronous calls.