Ответ 1
Каркасы
ОК, поэтому я немного предвзято, так как в настоящее время я широко использую Django и организовываю Django User Group в Лондоне, поэтому помните, когда читаете следующее.
Начните с Django, потому что это отличный лекарственный препарат. Много документации и литературы, очень активное сообщество людей, с которыми можно поговорить, и множество примеров кода в Интернете.
Это совершенно нетехническая причина. Пилоны, вероятно, более чисты с точки зрения философии Python (это гораздо больше коллекция дискретных бит и частей), но многие технические вещи являются личными предпочтениями, по крайней мере, до тех пор, пока вы больше не попадете в Python. Сравните очень активный тег Django с Qaru с использованием пилонов или турбогеров, хотя я бы сказал, что начать работу с Django просто проще, независимо от того, что делать с кодом.
Лично я по умолчанию Django, но считаю, что все большее количество времени я предпочитаю писать с использованием более простых микроплат (думаю, Sinatra, а не Rails). Множество вещей на выбор (хороший список здесь http://fewagainstmany.com/blog/python-micro-frameworks-are-all-the-rage). Я склонен использовать MNML (потому что я написал его части, и это крошечный), но другие активно развиваются. Я, как правило, делаю это для небольших, глупых веб-сервисов, которые затем объединяются с проектом Django среди людей, обслуживающих средний уровень.
Стоит отметить, что это приложение. Вы должны работать в пределах ограничений, и он не предназначен для всего, но это отличный способ просто играть с Python и что-то делать и быстро работать. Это отличный испытательный стенд для обучения и экспериментов.
Монго/ОРМ
На фронте MongoDB вы, вероятно, захотите взглянуть на основную библиотеку pongon 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/) хорошо, если вы хотите что-то автономное. Django ORM отлично подходит, если вы используете 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, я бы рекомендовал получить, кто пип и virtualenv (http://clemesha.org/blog/2009/jul/05/modern-python-hacker-tools-virtualenv-fabric-pip/ - примечание эта ткань также классная, но не существенная, и эти документы устарели на этом инструменте). Подумайте об использовании Ruby без gem, bundler или rvm, и вы окажетесь в правильном направлении.