рамочные
Хорошо, поэтому я немного пристрастен, поскольку в настоящее время я активно использую Django и организовываю Django User Group в Лондоне, так что имейте это в виду, читая следующее.
Начните с Джанго, потому что это отличный наркотик для врата. Много документации и литературы, очень активное сообщество людей для общения и множество примеров кода в Интернете.
Это совершенно нетехническая причина. Pylons, вероятно, более чист с точки зрения философии Python (будучи гораздо большим набором отдельных кусочков), но многие технические вещи являются личными предпочтениями, по крайней мере, до тех пор, пока вы не углубитесь в Python. Сравните очень активный тег Django в переполнении стека с тегами пилонов или турбонагнетателей, хотя я бы сказал, что начать работу с Django проще, независимо от того, что связано с кодом.
Лично я по умолчанию использую Django, но обнаружил, что все больше времени я выбираю для написания, используя более простые микро-фреймворки (думаю, что Sinatra, а не Rails). Много вещей на выбор (хороший список здесь, http://fewagainstmany.com/blog/python-micro-frameworks-are-all-the-rage). Я склонен использовать MNML (потому что я написал его части, и он крошечный), но другие активно развиваются. Я склонен делать это для маленьких, глупых веб-сервисов которые затем соединяются вместе с проектом Джанго в центре, обслуживающем людей.
Стоит отметить, что здесь есть appengine. Вы должны работать в рамках его ограничений, и он не предназначен для всего, но это отличный способ просто поиграть с Python и получить что-то и работать быстро. Это отличный тестовый стенд для обучения и экспериментов.
Монго / ORM
На фронте MongoDB вы, вероятно, захотите сначала взглянуть на базовую библиотеку Python Mongo (http://api.mongodb.org/python/), чтобы проверить, есть ли в ней все, что вам нужно. Если вы действительно хотите что-то более похожее на ORM, то mongoengine (http://hmarr.com/mongoengine/) может быть тем, что вы ищете. Несколько человек также работают над тем, чтобы Django специально интегрировался с бэкэндами nosql более плавно. предназначен для будущих выпусков Django, но django-norel (http://www.allbuttonspressed.com/projects/django-nonrel) имеет код сейчас.
Для реляционных данных SQLAlchemy (http://www.sqlalchemy.org/) хорошо, если вы хотите что-то автономное. ORM Django также отлично подходит, если вы используете Django.
API
Самой официальной библиотекой Oauth является python-oauth2 (http://github.com/simplegeo/python-oauth2),, в которой в качестве примера можно привести пример Django.
Piston (http://bitbucket.org/jespern/django-piston/wiki/Home) - это приложение Django, которое предоставляет множество инструментов для создания API. Преимущество состоит в том, что он довольно активен, хорошо поддерживается и работает повсюду. Существуют и другие проекты, включая Dagny (http://zacharyvoase.github.com/dagny/), что является ранней попыткой создать нечто похожее на ресурсы RESTful в Rails.
В действительности любая среда Python (или даже просто необработанный код WSGI) должна быть достаточно хороша для такого рода задач.
Тестирование
Python имеет unittest как часть своей стандартной библиотеки, а unittest2 находится в python 2.7 (но перенесен и на предыдущие версии http://pypi.python.org/pypi/unittest2/0.1.4). Некоторым людям также нравится Nose (http://code.google.com/p/python-nose/),, который является альтернативным тестовым раннером) с некоторыми дополнительными функциями. Twill (http://twill.idyll.org/) также хорош, это «простой язык сценариев для просмотра веб-страниц», поэтому удобно для функционального тестирования. Freshen (http://github.com/rlisagor/freshen) - это порт огурца для Python. Я еще не дошел до использования этого в гневе, но быстрый взгляд теперь показывает, что это намного лучше, чем когда я смотрел в последний раз.
На самом деле я также использую Ruby для тестирования приложений Python и apis на высоком уровне, потому что мне нравится сочетание скорости и огурца. Но я странный и получаю забавные взгляды от других людей Python для этого.
Очереди сообщений
Для очереди сообщений, на каком бы языке я ни использовал, теперь я всегда использую RabbitMQ.Я имел некоторый успех с Stompserver в прошлом, но Кролик потрясающий.Не беспокойтесь, что он написан не на Python, не на PostgresSQL, Nginx или MongoDB - и все по уважительной причине.Вам важны библиотеки.Здесь вы ищете py-amqplib (http://barryp.org/software/py-amqplib/), низкоуровневую библиотеку для разговора amqp (протокол для разговора с кроликом, а также с другими очередями сообщений). Я также использовал Carrot (http://github.com/ask/carrot/),, с которым легче начать и который предоставляет более приятный API.Подумайте, зайчик в Ruby, если вы знакомы с этим.
Среда
Независимо от тогокусочки и кусочки, которые вы решили использовать в экосистеме Python. Я бы порекомендовал узнать, кто такие pip и virtualenv (http://clemesha.org/blog/2009/jul/05/modern-python-hacker-tools-virtualenv-fabric-pip/ - обратите внимание, что структура также хороша, но не обязательна, и эти документы устарели для этого инструмента)Подумайте об использовании Ruby без gem, bundler или rvm, и вы будете в правильном направлении.