Python web infrastructure + [a] synchronization tasks; lengthy survey: not django

I need to create a project with a website interface for managing synchronized task execution (ala fabric), asynchronous tasks (AMQP) and long-poll / ajax for tabular viewing results and queues / large, frequently changing data sets (think tail -f syslog). I have an existing Python codebase for many implementation-specific materials.

Looking at a bunch of existing frameworks, the obvious answer is Django + Celery. However, I don't want to “learn Django”, and I don't need 95% of its functionality. I just need simple authentication, maybe sqlalchemy, simple ajax, amqp, xmlrpc. It would be helpful.

I would think of using Mongrel2, but I have a strong preference for RabbitMQ over 0MQ (for several reasons related to the particular implementation).

I initially spent a lot of time learning Twisted and ended up with several hundred useful LOCs, but I found that I had too much (lol) distorted my platform code to fit its callback model. It really “matches the score” is very good (except for its own implementation of amqp), but it was so unpleasant, and I went through so many iterations of code (one for each "twisted moment of aha"), which is 100%.

Can someone please help me get through the swamp? Tornado? <stroke> Pylons? repoze? Pyramid? Flask? Bottle? CherryPy? Web2py? Pasteur / WebOb? Anything else @ http://wiki.python.org/moin/WebFrameworks ?

Edit:

To be clear, integration with RabbitMQ (or another amqp provider) is of utmost importance and is actually a major issue.

+3
source share
3 answers

I don't have a full vision of python web frameworks, but just want to share my point of view with two of them:

  • . - , . , , .

  • Tornado - . tornadio ajax-long-polling . , , . .

,

+2

AMQP , , AMQP , , AMQP.

- RESTful ( ), , , , .

Python RabbitMQ amqplib kombu. kombu , pika - , , amqplib Pythonic AMQP.

RabbitMQ, AMQP, , AMQP .

, xmlrpc, . RESTful , XMLRPC - .

+1

.

CherryPy - . , HTTP- .

web.py - . , CherryPy, .

Plain wsgi is not a bad choice if your needs are extremely simple. It's a little harder to do simple things than CherryPy or Web.py. WSGI is the lowest common denominator; today most web frameworks are built on top of it.

-1
source

All Articles