ONLamp.com    
 Published on ONLamp.com (http://www.onlamp.com/)
 See this if you're having trouble printing code examples


Python News

Python Web Application Tools

03/14/2001

Also in Python News:

BitTorrent Style

Twisted Python

Python Escapes Classroom

Humongous Python

Py in Print

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.

Stephen Figgins administrates Linux servers for Sunflower Broadband, a cable company.


Read more Python News columns.

Copyright © 2009 O'Reilly Media, Inc.