Нужен ли нам django-nonrel сейчас, когда GAE (предположительно) поддерживает Django из коробки? - PullRequest
3 голосов
/ 30 января 2012

Согласно этому вопросу:

Django в Google App Engine

Самый простой способ начать работу с GAE / Django - использовать пакет Django non-rel.Однако теперь, когда последний Python / GAE SDK включает в себя сборку Django, нам все еще нужно это?

Какая лучшая практика для начала работы с Django в GAE прямо сейчас?

Спасибо

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

Обычные модели Django не имеют серверной части, поддерживающей хранилище данных GAE. Следовательно, вы не можете использовать модели Django, и, следовательно, формы моделей Django. Что вам нужно сделать, это использовать модели, основанные на python db.Model () от GAE. Вместо использования класса ModelForm в Django для форм вы должны использовать google.appengine.ext.db.djangoforms. Обратите внимание, что это специально для ModelForms, другие формы работают нормально, так как они не привязаны к базе данных.

Я могу вспомнить две веские причины использовать Django-nonrel: 1a) у вас уже есть проект на Django. Использование Django-nonrel было бы самым ленивым способом. Переписать модели для моделей GAE не так уж сложно, но это может быть небольшой болью, особенно если 1b) вы используете много существующих компонентов Django, и вам придется пройти через все из них, чтобы обновить модели и формы. 2) Вы хотите застраховать свои ставки против GAE. Использование Django-nonrel позволит вам с минимальными усилиями переключиться на MongoDB, поскольку Django-nonrel имеет функционирующий бэкэнд MongoDB. Нынешние сопровождающие Django-nonrel, похоже, больше заинтересованы в MongoDB.

Поработав с Джанго-нонрелом, я до сих пор сталкиваюсь с некоторыми причинами, по которым это может быть плохим выбором: 1) Нет поддержки запросов предков. Хотя для этого есть невыполненный запрос. Это не будет совместимо с любым другим бэкэндом БД. 2) Выходит ndb, и, похоже, у него будет еще несколько преимуществ, которые, скорее всего, не увидят поддержки на Django-nonrel.

Если вы используете собственный db API GAE, основным преимуществом Django будет проверка формы. В противном случае webapp2 + jinja2 + gae db.Models () предоставит функциональность, аналогичную Django.

3 голосов
/ 30 января 2012

Обновление. Похоже, Веб-приложение2 - самый простой выбор для новых проектов.

Эта гостевая статья предполагает, что

"App Engine поставляется с некоторой поддержкой Django, но это в основном только шаблоны и представления. "

non-rel по-прежнему является вашей лучшей ставкой. Хотя я бы предупредил вас, что дальнейшая разработка и / или сопровождение могут не произойти, согласно их блогу .

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