Как человек, который развернул сайт Django в GAE, я могу вам сказать, что вы не найдете идеального решения. Django в GAE пропускает некоторые из лучших аспектов Django, потому что ORM работает неправильно. Лучшим компромиссом может быть использование Django-nonrel для добавления функций обратно.
Это создает свои собственные проблемы: из-за большого количества файлов и памяти, используемых приложением Django, ваш код будет выгружен из памяти быстро после простоя приложения. Это означает, что посетители будут часто сталкиваться примерно с 6-секундной задержкой при просмотре первой страницы после того, как код сайта был выгружен из памяти, пока GAE распаковывает сжатые модули. Если ваш сайт занят, это не будет проблемой, но пока ваш сайт еще молодой и неизвестный, это вызовет проблемы с производительностью. : - (
Во-вторых, я также работал в компании, которая создала собственную CMS и могу сказать, что первые 80% довольно просты, особенно с современными фреймворками. Однако остальное может быть довольно сложным. Например, роли пользователей и пользовательские типы контента являются двумя сложными аспектами. Поэтому настоятельно рекомендуем встать на спину гигантов и найти систему CMS или CMS, которая почти идеально соответствует вашим потребностям, а затем расширить ее, чтобы сделать дополнительный бит, который вам нужен.
Итак, что сказал, отвечая на ваши очки:
Да, вы ограничиваете свои возможности, но это может быть нормально. Большинству разработчиков удобнее использовать реляционную модель, чем модель nosql. Поэтому больше программного обеспечения с открытым исходным кодом создается с учетом этого. Кроме того, GAE является платформой с закрытым исходным кодом, которая также является сдерживающим фактором для разработчиков с открытым исходным кодом. App Engine Oil - это среда CMS, которая может вам подойти и оптимизирована для App Engine. Также посмотрите на web2py , который поддерживает GAE.
Я оказался очень продуктивным с Python. Раньше я много писал на PHP, но теперь это уродливо. Тем не менее, подумайте об общем количестве строк кода, которые вам придется написать. Если вы можете заставить Drupal работать с высококачественными готовыми модулями, вам может понадобиться только 1/10 кода. Кстати, хитрость с Drupal состоит в том, чтобы использовать в основном только высококачественные модули. Посмотрите на историю, убедитесь, что не используете версии разработки. Попробуйте связаться с авторами по IRC. Я не говорю, что вы должны использовать Drupal, но возможно иметь надежный сайт (например, whitehouse.gov)
Вы находитесь в классической задаче GAE / Django. Если вы используете 0,96, вы получаете отличную производительность, но вам не хватает многих замечательных функций 1,0+, и вы не получаете ORM и всех его преимуществ. Если вы используете более новую версию Django, у вас возникают проблемы с производительностью / памятью, упомянутые выше.
Я собираюсь исследовать пинакс для моей компании. Я сделал очень взгляд курсора на это. Я не знаю, имеет ли он хорошую поддержку для бэкэндов нереляционных моделей. Вы, вероятно, должны смотреть на Джанго-Нонрел. Однако знайте, что вы собираетесь инвестировать в относительно неопробованные решения здесь. Небольшой процент пользователей Django используют Pinax, а еще меньший процент, если таковой имеется, использует его на нереляционном бэкэнде. Поэтому вы будете в очень экспериментальном сценарии, который вы упомянули в пункте 2 выше.
Я не могу предложить личный опыт. Я исследовал пижаму несколько раз. Однако я люблю писать HTML CSS и JS. Мне нравится иметь контроль. Мне нравится прогрессивное улучшение и знание того, что увидят пользователи, если у них не будет всех возможностей. Кроме того, я думаю, что любое новое приложение, которое явно не предназначено для мобильных клиентов, неявно стреляет в себя. Целых 15% интернет-пользователей используют Интернет только через свои смартфоны. Какой опыт они получат с пижамой?
Вы не упомянули об этом, но одну вещь, которую я учитывал при выборе платформы, - это привязка к поставщику и переносимость. Если вы разрабатываете свое решение для GAE и обнаруживаете, что не можете делать то, что хотите, сможете ли вы перенести его на другое решение в другом месте? Сколько работы это займет? Если вы интенсивно программируете для GAE или берете на себя обязательства по его архитектуре, вы застряли с ней или переписали, чтобы переместиться. Использование Django или Web2py может помочь смягчить это.
Тем не менее, большое преимущество Python GAE заключается в том, что вы получаете очень продуктивную работу, мгновенно просматриваете свои результаты, получаете бесплатный хостинг, пока ваш сайт небольшой, и получаете отличную масштабируемость. Это не мелочи. Там есть большая ценность.