Подтвердить что ты не робот

Django в Google App Engine

Насколько больно запустить приложение Django в App Engine? Кроме того, работает ли Datastore с Django?

4b9b3361

Ответ 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, хотя!

Ответ 3

Вам нужно использовать django-nonrel (источник).

Вы по-прежнему найдете множество проблем:

  • Many2Many не поддерживается
  • Поддельные объединения увеличивают количество запросов
  • App Engine не разрешает использование каких-либо библиотек python с зависимостями сокета или C (sentry, lxml...)

Вы можете попытаться получить ранний доступ к CloudSQL.

В противном случае вы не будете ограничивать использование App Engine, вы можете подумать об использовании:

Более дешевый и больший контроль с файлами поддержки, такими как pip.

Ответ 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, я написал учебник для этого.