我想使用Python版本的App Engine,而不是专门为Google Data Store编写我的代码,我想用可以附加到Big Table的通用Python ORM创建我的模型,或者,如果我更喜欢,以后的常规数据库.是否有任何Python ORM如SQLAlchemy允许这样做?
从技术上讲,这不会被称为ORM(对象关系映射器),而是DAL(数据库抽象层).对于AppEngine,ORM部分并不是很有趣,因为API已经处理了对象映射并执行了一些简单的关系映射(请参阅RelationProperty).
还要意识到DAL永远不会让你在AppEngine的数据存储区和像mysql这样的"普通"sql数据库之间切换,因为它们的工作方式完全不同.它可能允许您在不同的键值存储之间切换,如reddis,mongo或tokyo cabinet.但由于它们都具有非常不同的特征,所以在使用之前我会三思而后行.
最后,DAL传统上位于数据库接口之上,但是使用AppEngine的api,您可以实现自己的"存根",基本上可以让您在其api上使用其他存储后端.Mongo的人为MongoDB 写了一个非常好的.dev_appserver附带一个基于文件系统的.
现在回答:是的,有一个!它是web.py的一部分.如果由于上述原因,我没有真正尝试过,所以我不能说它是否好.
PS.我知道Ruby在keyvalue商店中也有一个很好的DAL项目,但我现在找不到它......也许在某些时候可以很好地移植到Python.