Python Web Application Tools

03/14/2001

Digital Creation's Zope is the
most well known Python web application server. In features and
maturity, it has no real competitors. When it comes to Python
web application development, however, it does have some
challengers. Chuck Esterbrook leads a project to create an application server more oriented to Python developers, namely, Webware for Python.
Several modules make up the Webware package. The core part is WebKit, the actual application server. WebKit
works in roughly the same way as a Java Servlet engine, managing and executing Python servlets. WebKit is extendable through plug-in
modules. There is a plug-in to wrap CGI programs and a plug-in
to add Python Server Pages (PSP). PSP works in roughly the same way as ASP or JSP, allowing you to embed Python directly in your web
pages.

Those familiar with Java Servlets or Apple's
WebObjects will feel right at home with Webware. The program
is very lightweight and easy to get up and running if you are
using the included threaded server. The 0.5.1 release is also very well documented. With the documentation and included demos, you can install it and start playing with it in about five minutes. Jeff Shelton of Zope Newbie
News reports Esterbrook's Introduction to Webware at IPC9
was well attended and a couple of Digital Creation's employees
were paying close attention to the presentation.

The MEMS Exchange's CGI-based Quixote
0.20 offers another web application development
alternative. Quixote packages code and HTML together using
Python Template Language (PTL). Simple in its conception and
simple in its execution, Quixote is a good example of how
Python can be used to rapidly develop and test an idea. Drawing
on Zope's HTTPRequest and
HTTPResponse code, Jeremy Hylton's compiler code,
and Robin Dunn's fastCGI code, A. M. Kuchling, Neil Schemenauer
and Greg Ward originally hammered out this web application
development tool in about a week. Well under 200k, their
solution slips easily into your existing web server. If you
are just looking for a little bit of grease to make your
existing development work easier, Quixote could be just the
thing you need.

Some Zope competitors aren't Python application servers at
all. One powerful application server solution is to combine Jython, a 100% Java
implementation of the Python language, with a Java web
application server. Using Jython you can compile your Python
programs to Java bytecode. You write Servlets in Python,
compile them, and then put them on your Tomcat
server, for example. Freely mixing Python and Java, you
benefit from the strengths of both languages. If your company
wants to go with a Java application server, you don't need to
leave Python behind. From the lightweight Quixote to the
full-featured, heavyweight Zope and beyond, Python developers
have many options when it comes to developing and deploying web
applications.