Я понял, что этот вопрос был только об аутентификации после того, как я написал это, поэтому большинство вещей здесь - оффтоп, но я просто хотел демотивировать использование полнофункциональных решений, таких как django или web2py, в appengine.
Я могу рассказать вам кое-что о django, потому что я использовал его больше года, и мне это нравится для определенных типов сайтов. Это был первый фреймворк, который я пытался использовать в appengine, и я отбросил его через две недели.
Это вещи в django, которые не работают или не имеют смысла в appengine:
- модели django и orm : предназначены для sql; appengine sdk имеет свои модели.
- сайт администратора django : предназначен для баз данных sql, не работает на appengine
- автоформ от моделей : предназначен для моделей Django
- команды управления django : ни одна из команд, поставляемых с django, не подходит для работы с appengine SDK.
- сервер разработки django : appengine sdk имеет собственный сервер разработки, сервер django не работает.
- django архитектура "подключаемых приложений" : по крайней мере в моей практике это было бесполезно для appengine.
- сборщик статических файлов : отличный инструмент для сбора статических файлов из различных приложений многократного использования в одну папку, только если у вас много приложений многократного использования.
Существует проект django-nonrel, в котором говорится, что он может запускать django с административным сайтом на appengine. Это может, с половиной вещей, работающих и много ошибок. Вы проводите больше времени, пытаясь исправить то, что не работает, чем строить вещи.
Что может быть полезно из фреймворка django:
- формы django : можно обменять на лучшую библиотеку WTForms
- маршрутизация по URL-адресу django : вместо
- объекты запросов / ответов django и исключения HTTP : вместо него можно использовать Werkzeug
- django Исключения красивой печати : Werkzeug делает это лучше, добавляет веб-отладчик .
- django i18n и локализация : можно изменить с помощью babel
- django templates : jinja2 похож и намного быстрее, что важно, потому что appengine является дорогой платформой. Модуль
ctypes
требуется для отладки ошибок в шаблонах jinja, однако ctypes
запрещен в appengine, но на сервере разработки работает , для отладки вам не нужно больше.
На самом деле Jinja2, Werkzeug, WTForms и babel настолько круты, что для каждого из них существуют проекты, интегрирующие их с django.
Я знаю две платформы, которые используют эти библиотеки:
- kay-framework : сделано для appengine, немного устарело, но отличный пример того, как вы можете использовать Jinja2, babel и Werkzeug на appengine.
- фляга от Армина Ронахера, человека, стоящего за Веркзойгом и Джинджей2.
Я не использовал web2py, однако, поскольку это также полнофункциональный фреймворк, как у django, я думаю, что он будет таким же плохим, как и django. Решения с полным стеком просто не подходят для этой другой среды. Простые библиотеки подходят для любой среды.