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

Django и App Engine

Я хотел проверить статус запуска Django в Google App Engine в настоящее время и каковы преимущества запуска django в GAE вместо простого использования Webapp.

Функция главного убийцы Django, IMHO, является повторно используемыми приложениями и промежуточным программным обеспечением. К сожалению, большинство современных приложений Django используют модели или модельные формы (django-tags, django-reviews, django-profiles, приложения Pinax).

Итак, каковы оставшиеся функции или преимущества, которые django имеет, которые все еще могут работать в Google App Engine (кроме отключенных: популярные приложения django, промежуточное программное обеспечение для сеанса и аутентификации, пользователи и администраторы, модели и т.д.).

Также есть список приложений Django, которые также работают в App Engine?

4b9b3361

Ответ 1

app-engine-patch в настоящее время имеет большинство функций django, включая сеансы, contrib.auth, сайты и некоторые другие стандартные приложения django. Однако его главный недостаток (мое мнение) заключается в том, что он использует zip файл модифицированной версии django для достижения этой функциональности, и текущие поддерживающие устройства, похоже, не отстают от текущих выпусков django. В настоящее время, похоже, консенсус прошлых и нынешних сопровождающих о том, что этот подход слишком громоздкий для поддержания, и, следовательно, никто в настоящее время его не поддерживает.

google-app-engine-django, использует подход патча обезьяны последней версии django, включенной в рабочую среду разработки GAE, при условии, что google продолжает track django, вы будете постоянно обновляться относительно django. Однако в настоящее время он не полностью портирован contrib.auth, поэтому вы можете выполнять аутентификацию только с учетными записями google, что может быть большим недостатком в зависимости от того, хотите ли вы, чтобы пользовательские модели Contrib.auth работали так, как вы их знаете, на sql-серверах. В помощнике нет поддержки администратора django, так как есть в app-engine-patch. Существует вилка django-app-engine-django, которая добавляется в некоторые из приложений Contrib, таких как flatpages, sites и sitemaps. Также обратите внимание: он работает только с версиями django до версии 1.1, до issue # 3230 Django 1.2 добавляется в use_library, если вы не загружаете django в zip файл файл.

На горизонте оригинальный разработчик app-engine-patch работает над веткой django-nonrel, но это может быть довольно вдали от включения в выпуск django. Этот поток разработчиков django содержит много информации об этих усилиях.

В отдельности существует проект google summer of code, работающий над интегрированием некоторых аспектов нерелевых db.

Ответ 2

app-engine-patch получает большинство из тех вещей, которые работают внутри AppEngine - так что вы можете (в основном) использовать прямые модели Model, использовать пользователей Django и admin и т.д.

Я использовал его только для довольно простых проектов (новичок в django), но они утверждают, что большинство приложений Django будут работать с (в лучшем случае) незначительными изменениями в appengine. Например, app-engine-patch использует классы AppEngine Model, а не классы Django; и некоторые из основных представлений, которые слишком неэффективны для работы в Appengine.

добавлено: google-app-engine-django похоже; но предоставляет BaseModel, который похож на Django BaseModel. Я понимаю, что google-app-engine-django был выпущен Google, а затем разветвлен, чтобы создать приложение-движок-патч. У поддерживающих app-engine-patch, похоже, есть несколько разных целей от создателей google-app-engine-django, поэтому вы можете обнаружить, что один из двух соответствует вашим потребностям лучше, чем другой.

Google предоставил несколько статей о запуске приложений Django на appengine; самая последняя на самом деле является гостевой записью от авторов приложения-engine-patch.

Ответ 3

У меня был лучший успех, просто выбрав и выбирая функции Django, которые мне нужны, и исправляя их самостоятельно в webapp. В моем последнем проекте я фактически просто вырезал материал webapp полностью. Я все еще импортирую и вызываю несколько функций утилиты webapp, но в основном это ручное приложение, созданное из хороших частей GAE и Django.

Ответ 4

Вам может быть интересно проверить web2py, другую структуру Python, которая предположительно имеет меньшее трение между GAE и "обычным" веб-сервером.

Ответ 7

В среде исполнения программы GoogleAppEngine (GAE) Python 2.7 предусмотрено несколько сторонних библиотек, которые могут использовать ваше приложение, помимо стандартной библиотеки Python, инструментов GAE и среды выполнения GAE Python. Один из них - Django. Ниже приведена копия с страницы документов GAE в сторонних библиотеках:

Чтобы использовать Django в Python 2.7, укажите приложение WSGI и библиотеку Django в app.yaml:

...
handlers:
- url: /.*
  script: main.app  # a WSGI application in the main module global scope

libraries:
- name: django
  version: "1.2"