Django + Google App Engine: помощник механизма приложения для django или use_library?

Кажется, существует 2 способа использовать django 1.1 с GAE

Мы в настоящее время используем первое. Мы должны переключиться? И каково различие между двумя?

7
задан Paul Biggar 8 January 2010 в 17:47
поделиться

4 ответа

use_library загружает неиспользованную версию джанго в производственном окружении, поэтому многие вещи не будут работать из коробки в app-engine.

Хелпер применяет ряд исправлений к библиотекам django, чтобы включить такие вещи, как Sessions, test, кэш-фреймворк и так далее. Если Вы не добавили собственную копию django в Ваше вспомогательное приложение и используете последнюю версию (r100 или выше), то сначала помощник пытается загрузить django 1.1, а если это не удается, то загружает 1.0. Вы можете увидеть это в appengine_django/__init__.py::LoadDjango.

На производственном GAE, джанго 1.1 всегда существует, поэтому он загружается первым.

Однако в вашей среде разработки SDK сервера dev не распространяет Django. Поэтому он использует любую версию Django, которую может найти, сначала пытаясь найти 1.1, а затем 1.0, а если не может найти, то бросает UnacceptableVersionError.

Вероятно, вы захотите использовать помощник, а не use_library, потому что тогда вам придется самим исправлять необработанные библиотеки django, дублируя таким образом работу в помощнике. Вне зависимости от того, распространяете ли вы свою собственную версию django, в виде папки или zip-файла, зависит от вас. Одно из преимуществ того, что Вы не распространяете свою собственную копию django, заключается в том, что, поскольку Google применяет исправления безопасности, Вы автоматически получаете их без необходимости перераспространять Ваше приложение.

9
ответ дан 6 December 2019 в 14:04
поделиться

FYI, есть, по крайней мере, еще один способ получить Django 1.1 в GAE.

Взгляните на http://code.google.com/p/app-engine-patch/

Он позволяет использовать большинство функций Django, в том числе и Admin.

1
ответ дан 6 December 2019 в 14:04
поделиться

App-Engine-Patch, кажется, умер:

http://code.google.com/p/app-engine-patch/issues/detail?id=253

1
ответ дан 6 December 2019 в 14:04
поделиться

замена называется django-nonrel (и djangoappengine) ... вы можете найти ее по адресу http: // www.allbuttonspressed.com ... с django-nonrel вы сможете запускать чистые приложения Django поверх App Engine, не изменяя свои модели!

3
ответ дан 6 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: