python - 任何 Python ORM(SQLAlchemy?)都可以与 Google App Engine 一起使用吗?

标签 python google-app-engine sqlalchemy orm

我想使用 App Engine 的 Python 版本,而不是专门为 Google 数据存储编写代码,我想使用可以附加到 Big Table 的通用 Python ORM 创建我的模型,或者,如果我愿意的话,可以在以后的某个时间使用常规数据库。是否有任何 Python ORM(例如 SQLAlchemy)允许这样做?

最佳答案

从技术上讲,这不会被称为 ORM(对象关系映射器),而是 DAL(数据库抽象层)。 ORM 部分对于 AppEngine 来说并不是真正有趣,因为 API 已经处理了对象映射并进行了一些简单的关系映射(请参阅 RelationProperty)。

还要意识到,DAL 永远不会让您在 AppEngine 的数据存储和像 mysql 这样的“普通”sql 数据库之间切换,因为它们的工作方式非常不同。它可以让你在不同的键值存储之间切换,比如 reddis、mongo 或 tokyo cabinet。但由于它们都有如此不同的特性,我在使用前会三思而后行。

最后,DAL 传统上位于数据库接口(interface)之上,但使用 AppEngine 的 api,您可以实现自己的“ stub ”,基本上可以让您在其 api 上使用其他存储后端。 Mongo 的人写道 one对于 MongoDB,这非常好。 dev_appserver 带有一个基于文件系统的服务器。

现在回答:是的,有一个!它是 web.py 的一部分.由于上述原因,我还没有真正尝试过,所以我不能说它是否好。

附言。我知道 Ruby 也有一个很好的用于键值存储的 DAL 项目,但我现在找不到它……也许在某个时候移植到 Python 会很好。

关于python - 任何 Python ORM(SQLAlchemy?)都可以与 Google App Engine 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308376/

相关文章:

python - 理解 Tensorflow 中的 while 循环

google-app-engine - GAE 500 服务器错误

python - SQLAlchemy execute() 将 ResultProxy 作为元组返回,而不是字典

python - 如何检测列表中的非数字?

python - Pyinstaller 给出错误 ("Error loading Python ... no suitable image found")

python - 遍历类似 excel 的字符组合范围

java - NoClassDefFoundError com.google.common.collect.Lists

python - 尝试从 google.appengine.api 导入 background_thread(如示例)失败并出现 ImportError

mysql - 如何使用 SQLAlchemy 为 RDS 代理设置 TLS

python - 对多个 Postgres 模式的 Alembic 支持