Python Web Frameworks Overview: Webware
URL
http://webware.sf.net
Licence
Old-style
Python licence - Webware is open source.
Deployment Platforms
- Integrated with a Web server using CGI or adapters (such as mod_webkit
for Apache).
- The Webware environment is provided by long-running processes.
- Work has been done to permit Webware to run as a standalone server -
this is not "mainstream" as of release 0.7, however.
Operating Systems
Webware works on UNIX and Windows platforms.
Suitability
In practice, Webware requires a Web server in order to be deployed, but to
start out as a developer it is fairly straightforward to set up the supplied
CGI Adapter program to communicate with the WebKit component of Webware.
Should other means of integration be chosen later, such as adapters or even
the standalone server features under development, Webware components and
applications need not be aware of such changes in deployment.
The need to run the WebKit component's application server process
continually excludes Webware from certain hosting environments. It is possible
to use a OneShot CGI-based mechanism to launch the application server for each
request, but performance is apparently significantly reduced with this
mechanism.
Development Interfaces
- Object-oriented, servlet-like - many classes expose request and response
objects to Python components, and a hierarchy of classes attempts to model
page components (or whole pages) using this paradigm.
- Presentation-oriented - certain template systems are targeted
particularly at Webware, such as Python Server Pages and Cheetah.
Environment Access
- Webware uses Python-based configuration files to specify resource
locations to Webware components, plug-ins and applications.
- It can therefore be said that Webware's environment access system is
module-based.
Session, Identification and Authentication
- Webware provides mechanisms for the identification of users.
- Despite the existence of a UserKit, there is no apparent consensus on
common authentication mechanisms.
Persistence Support
- A plug-in called MiddleKit (which can be used independently of Webware)
provides an object-relational mapper.
- MiddleKit is used to generate database schemas and Python code which
accesses the database whilst providing an object-oriented front end to the
data being manipulated.
Presentation Support
- Python Server Pages - a Python-in-HTML presentation technology supplied
with Webware.
- Cheetah - a popular template system originally developed for Webware but
available separately.
Other presentation systems also exist for Webware.
Comments
Webware is relatively easy to install and comes with a reasonable amount of
documentation. One of the stated strengths of Webware is that the development
and deployment of code takes place in an environment that is familiar to
anyone who has already developed Python applications before - in most cases,
files need only to be placed in certain WebKit "context" directories. Webware
application development therefore seems more familiar to those experienced
with writing CGI programs than systems working according to different
principles (such as Zope), but arguably lends itself less to a "component
exchange culture" (as seems to be the case with Zope).