[Baypiggies] Python Application Servers

Ben Bangert ben at groovie.org
Fri Dec 2 01:49:42 CET 2005


On Dec 1, 2005, at 3:48 PM, Sebastian Jayaraj wrote:

> With all these emails concerning the language wars one of the things
> that caught my attention was Turbogears as an application  
> framework. Can
> anyone who has worked with python app servers make some  
> recommendations
> as to how these compare - TurboGears, CherryPy, WebWare, Twisted, Zope

You'd prolly want to separate those more first, in this case by how  
many decisions were just made for you.

Full-stack framework (Everything decided, from templating, ORM, to  
layout style):
- TurboGears
- Django

Template languages:
- Myghty
- Cheetah
- ZPT
- Kid (used in TurboGears)
(prolly more I missed)

"Controller" framework in MVC:
- CherryPy (used in TurboGears)
- Myghty
- Webware
- Aquarium
- Quoxiote

ORM (Object Relational Mapper):
- SQLObject (well established, used in TurboGears)
- PyDO
- Durus (I think I spelled that right)
- SQLAlchemy (aiming to be the Hibernate of the Python world, still  
beta software)

TurboGears uses the CherryPy session object, Django has its own  
template language, session stuff, and ORM. There's also a Django  
addon to support ZPT.

> My needs
> 1. Security & Session mgmt
> 2. Easy database acccess/mgmt
> 3. ability to integrate with third party programs (C, Java)
> 4. ability to integrate with custom Python libraries
> 5. XML-RPC support
> 6. Active development and community support
> 7. Robust enough for a production environment
> 8. Rapid development capability (unlike the steep curve one encounters
> with Zope)
>
> Incase you have come across anything else that worked well please feel
> free to let me know.

Some of these tools are more tailored for certain environments.  
Django comes out of box with a very slick admin interface for your  
database models, thats production ready for use by staff. Obviously  
that comes with the assumption that your database is mainly content  
management of some sort and you have a 'staff' to use it. Django also  
has batches of 'generic views' which makes a lot of common object  
viewing stuff quite easy and quick.

TurboGears also now has a database model browser, sort of like  
Django's and development work on both projects is proceeding rather  
quickly.

I personally use Myghty, and our corporate website (parachute.com)  
has been running Myghty for close to a year now. Myghty makes very  
few decisions for you, so its expected that you know what you want  
(MVC? page-driven? etc.). Myghty is probably one of the most  
documented Python web frameworks and template languages I've come  
across, though Django and TurboGears are making great strides in this  
area as well. I mention more things about Myghty on my blog at  
www.groovie.org.

If you want the decisions made for you on how to solve the problems  
you mentioned, I'd suggest Django or TurboGears as they both have  
everything on your list of needs. Though I'm not sure how robust they  
are as they're both quite 'new', while the Django people will always  
point to sites 'using Django' that have been up for 2 years, the  
codebase has undergone so much development lately that those sites  
haven't actually been running the code you'd be installing.

Hope that helps,
Ben


More information about the Baypiggies mailing list