[prog] Python web applications

jennyw jennyw at dangerousideas.com
Thu Apr 14 18:04:22 EST 2005


The PyWebOff sounds like a great resource!

Here are some of my thoughts in addition ...

When thinking about making web sites using Python, Zope immediately comes to 
mind.  However, writing Zope applications is more than just programming in 
Python.  Zope is more of an application server that it is a lightweight 
framework.  A lot of the development that people do in Zope isn't just 
Python, but also things like Zope Page Templates 
(http://zpt.sourceforge.net/).  For example, Plone -- a CMS based on Zope --  
has a lot of parts to it besides Python code.  I find that it's kind of hard 
to get started with Zope -- there's a lot to learn, and it's a bit much if 
you have a simple application in mind.  This isn't necessarily a bad 
thing -- I think ZPT is brilliant, I love that Zope comes with an 
object-oriented database backend that provides access via Web pages, DAV, 
ftp, and XML-RPC. I'm also a big fan of Plone, and it wouldn't have been 
possible without Zope.  However, it can be a steep learning curve, and if 
you want to write a relatively simple application to start with, it's not 
something I would recommend.  If do you decide to get into Zope, it seems 
the most popular book is "Zope Bible".  I don't think there are any super 
recent books on Zope out right now -- there will be a few coming out on Zope 
3, but Zope 3 isn't compatible with Zope 2.x, which most applications are 
built on.  If you're interested in content management systems, Andy McKay's 
book on Plone is more recent and also talks about Zope in addition to Plone 
(my main interest with Zope is Plone, in case you haven't guessed!).

There are a whole lot of frameworks available, but I don't think any one of 
them is preeminent, nor do I have much experience with them.  In fact, most 
of what I know about them I've read in relationship to Ruby on Rails. 
There's even an attempt to create a RoR-like framework in Python -- it's 
called Subway (http://subway.python-hosting.com/) and is an attempt to 
combine several existing Python products into a full stack development 
environment.  "Full stack" simply means including all the pieces you need 
for development - templating, object-relational mapping, Web services, etc. 
(many Python frameworks deal with only one piece; Zope provides all of that, 
plus a whole lot more).

Of course, if you want to see the results of your work quickly, and don't 
mind branching out beyond Python, I strongly recommend you take a look at 
Ruby on Rails (http://www.rubyonrails.com/). One of the best things about it 
is that you can get a functional database driven Web application in just a 
few minutes.  This is great for encouraging incremental development -- you 
get started with something very simple, very quickly, and build your 
application by adding parts and making changes a little bit at a time.

Jen



More information about the Programming mailing list