• web2py (http://www.web2py.com/). Он работает примерно с тем же, с чем и django, только немного в другом стиле.
• pyramid (http://www.pylonsproject.org/). Этот фреймворк появился из более раннего проекта pylons, с точки зрения функционала он похож на django.
• turbogears (http://turbogears.org/). Этот фреймворк поддерживает ORM, множество баз данных и несколько языков шаблонов.
• wheezy.web (http://pythonhosted.org/wheezy.web/). Этот более молодой фреймворк оптимизирован для повышения производительности. Недавние исследования показали, что он работает быстрее других.
Вы можете сравнить фреймворки с помощью онлайн-таблицы по адресу http://bit.ly/web-frames.
Если вы хотите создать сайт, работающий с реляционной базой данных, вам не обязательно пользоваться одним из этих крупных фреймворков. Можете воспользоваться Bottle, Flask или каким-нибудь другим простым фреймворком и модулями работы с базами данных вроде SQLAlchemy, чтобы сгладить разногласия. Далее вам нужно будет написать обычный код SQL вместо специфического кода ORM, так как большинство разработчиков знают SQL, а не некий определенный синтаксис ORM.
Кроме того, ничто не заставляет вас выбирать именно реляционную базу данных. Если схема ваших данных может значительно изменяться — графы явно различаются в разных рядах, — вам стоит выбрать базу данных, не имеющую схемы, вроде баз данных NoSQL, которые мы рассматривали в разделе «Хранилища данных NoSQL» главы 8. Однажды я работал над сайтом, который изначально хранил данные в базе данных NoSQL, затем переключался на одну реляционную базу данных, затем на другую реляционную базу данных, затем на другую базу данных NoSQL и, наконец, возвращался к одной из реляционных.
Другие веб-серверы Python
Далее перечислены некоторые независимые WSGI-серверы, написанные на Python, которые работают как Apache или Nginx и используют несколько процессов и/или потоков (смотрите раздел «Конкуренция» главы 11) для обработки одновременных запросов:
• uwsgi (http://projects.unbit.it/uwsgi/);
• cherrypy (http://www.cherrypy.org/);
• pylons (http://www.pylonsproject.org/).
Далее перед вами серверы, основанные на событиях, которые пользуются одним процессом, но избегают блокирования любым одиночным запросом:
• tornado (http://www.tornadoweb.org/);
• gevent (http://gevent.org/);
• gunicorn (http://gunicorn.org/).
О событиях я поговорю подробнее в разделе о конкуренции в главе 11.