Насколько больно запустить приложение Django в App Engine? Кроме того, работает ли Datastore с Django?
Django в Google App Engine
Ответ 1
Я потратил некоторое время на то, чтобы ответить на один и тот же вопрос... мне кажется, что самое сложное в передаче GAE - это модели django... в том смысле, что они требуют различных модификаций и переосмысление, главным образом потому, что базовый компонент GAE не является стандартной реляционной БД, а google BigTable. Я нашел здесь интересное введение:
http://www.youtube.com/watch?v=rRCx9e38yr8
В любом случае, стоит скачать один из этих "патчей" и пойти с ним!
Для меня лучшим решением является app-engine-patch. Я загрузил образец проекта, и он сработал сразу! (Имейте в виду, что вам нужно установить GAE SDK отдельно). Функция убийцы для меня - это то, что портированы django-admin и многие другие классические функции django!!!
http://code.google.com/p/app-engine-patch/
documentation по-моему, по-моему, минимален, но это достаточно хорошо для вас. Это поможет вам сэкономить, хотя официальные документы GAE, хотя!
Ответ 2
Просто Вчера (в зависимости от вашего часового пояса) Google выпустил новый SDK для Python на Appengine, который поддерживает django 1.0 из коробки.
Ответ 3
Вам нужно использовать django-nonrel (источник).
Вы по-прежнему найдете множество проблем:
- Many2Many не поддерживается
- Поддельные объединения увеличивают количество запросов
- App Engine не разрешает использование каких-либо библиотек python с зависимостями сокета или C (sentry, lxml...)
Вы можете попытаться получить ранний доступ к CloudSQL.
В противном случае вы не будете ограничивать использование App Engine, вы можете подумать об использовании:
Более дешевый и больший контроль с файлами поддержки, такими как pip.
Ответ 4
31.01.2012, Google выпустил App Engine 1.6.2, который поддерживает Django из коробки.
Ответ 5
App Engine включает версию 0.96 Django из коробки, но она довольно искалечена.
App Engine Helper и app-engine-patch предположительно исправляют эту проблему до некоторой степени, но я не пробовал ни себя.
http://code.google.com/appengine/articles/appengine_helper_for_django.html http://code.google.com/appengine/articles/app-engine-patch.html
Ответ 6
Количество боли зависит от того, сколько существующего кода вы хотите повторно использовать. К сожалению, из-за того, что Datastore не поддерживает SQL, вы часто не можете просто использовать любое приложение для подключения django и использовать его в своем проекте GAE.
App-engine-patch http://code.google.com/p/app-engine-patch/ выглядит впереди других помощников django при приведении стандартных приложений (Сайты, ContentTypes, Flatpages) до GAE. Я использовал app-engine-patch для нескольких проектов gae, и как только вы поймете, как перенести модель django-sql на модель django-gae и преобразовать sql в запросы хранилища данных, все может быть сделано очень быстро - но всегда есть обучение кривая.
appengine-helper пытается преодолеть разрыв в Datastore, предоставив модель, поэтому вам не нужно менять модельные суперклассы, но я обнаружил, что вам все равно придется менять отношения ManyToMany и любой sql в любом случае, поэтому преимущество заканчивается минимальным. ae-patch имеет дорожную карту, чтобы попытаться обеспечить бэкэнда ae-datastore, но это, вероятно, не произойдет какое-то время.
Ответ 7
Теперь Google запустила хранилище Cloud SQL. Это фактически MySQL 5.5 в облаке. IMO - очень хороший способ перенести приложение Django в облако. У них есть бесплатная пробная версия до 1 июня 2013 года.
Если вам нужны советы по настройке вашего проекта Django для Appengine и Cloud SQL, я написал учебник для этого.