Работают ли Python ORM (SQLAlchemy?) С Google App Engine? - PullRequest
11 голосов
/ 20 августа 2009

Я бы хотел использовать версию App Engine на Python, но вместо того, чтобы писать свой код специально для Google Data Store, я хотел бы создавать свои модели с помощью общего Python ORM, который можно было бы присоединить к Big Table, или , если я предпочитаю, обычную базу данных на некоторое время позже. Есть ли Python ORM, такой как SQLAlchemy, который бы позволял это?

Ответы [ 2 ]

7 голосов
/ 21 августа 2009

Технически это не будет называться ORM (Object Relational Mapper), а будет DAL (Уровень абстракции базы данных). Часть ORM не очень интересна для AppEngine, так как API уже заботится о сопоставлении объектов и выполняет простое реляционное сопоставление (см. RelationProperty).

Также следует понимать, что DAL никогда не позволит вам переключаться между хранилищем данных AppEngine и «нормальной» базой данных sql, такой как mysql, потому что они работают совершенно по-разному. Это может позволить вам переключаться между различными хранилищами ключевых значений, такими как Reddis, Mongo или Tokyo Cabinet. Но поскольку все они имеют такие разные характеристики, я бы подумал дважды, прежде чем использовать одну.

Наконец, DAL традиционно располагается поверх интерфейса БД, но с помощью API AppEngine вы можете реализовать свои собственные "заглушки", которые в основном позволяют использовать другие бэкэнды хранилища для их API. Люди в Mongo написали one для MongoDB, что очень приятно. И dev_appserver поставляется с файловой системой.

А теперь ответим: да, есть! Это часть web.py . Я действительно не пытался, если по вышеуказанным причинам, поэтому я не могу сказать, если это хорошо.

PS. Я знаю, что в Ruby есть хороший проект DAL для хранилищ ключевых значений, но я не могу найти его сейчас ... Может быть, неплохо портировать на Python в какой-то момент.

3 голосов
/ 04 июля 2012

В настоящее время они делают, так как Google запустил Cloud SQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...