The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Which Python Web Framework?

I am looking at Django  & Zope.

Can anyone tell me which one might be the better of the two for web app development?
Monday, August 07, 2006
Django is more of a CMS/publishing system.  For web application's I'd use Zope.  If you want to add the equivalent of Java's portlets to an existing system, use Plone on top of Zope and create plone "products".

There's a really nifty development mechanism called Archetypes that can be used when developing Plone products.  In fact, you can define new Plone content types with a UML editor and the ArchGenXML program.  Here's the link to the latest tutorial:
Steve Moyer Send private email
Monday, August 07, 2006
Thanks Steve,

I had kind of thought that django was best for content management and that Zope was the big framework.

Any experience of Turbogears?
Tuesday, August 08, 2006
Zope is much more heavy-duty with a significantly longer learning curve.

Django and TurboGears are both highly regarded and occupy a similar niche.

The choice between Zope and Django / TurboGears will be determined by the nature of your application. The choice between Django and TurboGears is largely one of personal preference.

You could get a feel for both Django and TurboGears in the space of a day by working through their tutorials.
Spider Send private email
Tuesday, August 08, 2006
Thats a good idea.

I will work through both django & turbogears first and then see if they fit or start looking at zope.

Tuesday, August 08, 2006
Zope is also genrerally not considered to be very 'pythonic'.  I'm pretty pure at python, and every time I try to go through a zope book my brain starts to hurt.
Tuesday, August 08, 2006
The typical answer to the question of "Which python web framework should I use" is, unfortunately, write your own.

This is more a comment on the python communities, ahem, embarrasment of riches in this area. I suspect a lot of this is a reaction to Zope and the amazing complexity of said package.
Chris Tavares Send private email
Tuesday, August 08, 2006
"The typical answer to the question of "Which python web framework should I use" is, unfortunately, write your own."

Seems to me like developments over the past year have made that answer way outdated and unwise.  Django and Turbogears are both very good, and both have web programming architectures that are far more similar to something like Ruby on Rails than they are to a huge and cumbersome framework like Zope.

Guido van Rossum (creator of Python) has recently put his word in for Django as the best of the Python frameworks, and one that "is likely to be his favorite for a long time."  He characterizes Django as a "2nd generation Python web framework" and Zope as the "1st generation".
(This is about 50 minutes in to his interview at: )

In comparison to something like Django, Zope and Zope/Plone are huge and idiosyncratic frameworks with steep learning curves.  Django uses much more lightweight and flexible framework architecture.

Some people have said Django is more suited to CMS's and not as well suited for general web apps.  I would say it does have some CMS features built in that you won't find in something like RoR, but that it still leaves plenty of room for general web programming (and the dev team is emphasizing its use for general apps, not just the newspaper CMS web app that was its genesis).  Zope/Plone, actually, strikes me as having much heavier weight CMS functionality built in than Django does.
Herbert Sitz Send private email
Tuesday, August 08, 2006
My "write your own" comment was not a recommendation. It was a lament on the state of python web frameworks, and the plethora of options.

Turbogears is a good idea (collect the "best" of the other frameworks into one package), and Django looks pretty neat, but I haven't played much with either.

Sorry if I didn't make my previous post more clear.
Chris Tavares Send private email
Wednesday, August 09, 2006
Chris -- Really I just meant to agree that the statement used to have a bit of truth behind it, but that it didn't make sense to follow it now. 

I guess there still are a huge number of web frameworks for Python, but Django and Turbogears seem to be most complete and mature and the two with the most traction.  It makes sense to throw your hat in with a good framework that has a large and vibrant user community, and those two seem to fit the bill.

Zope is a good option, I'm sure, if you take a look at it and find that sort of mondo-framework thing to your liking.
Herbert Sitz Send private email
Wednesday, August 09, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz