# 1.3 Components

The Python Web Modules contain code written by various authours and released under various licences. Please see the Licence section for full information.

The Python Web Modules provide modules for all the common needs of web developers where components can be used together or independently. It is designed to run on any platform or web server supporitng Python and does not require administrator priveldges to install.

The modules contain a pure Python database engine and webserver so that everything you need to run a web site is available in the download. This means that if you decide not to use existing technologies such as a Apache or MySQL you can still run full web services with only Python and the Python Web Modules.

The suite uses well known design patterns and includes popular modules such as:

`auth`
  Easy to use authorisation and user management system with support for multiple access levels, storage drivers, and templates.

`datetime`
  Compatibility code providing date and time classes for Python 2.2 users.

`database`
  Implementation of the Python Datbase Connectivity specification. SQL abstraction layer, automatic type conversions and multiple result formats allowing tuple, dictionary or attribute access. Currently support for MySQL, SQLite and SnakeSQL.

`database.object`
  An object relation mapper built on the `database` module. Allows database objects to be manipulated in Python code without any knowledge of SQL or the storage mechanism. Supports one-to-many and many-to-many mappings automatically. Data structures are defined in code so no precompilation is required. The code also interfaces with the `form` module to provide customisable HTML form views of the data so that the database can be manipulated using a website without significant coding effort.

`error`
  Enhanced error handling based on the `cgitb` module. Automatically log errors or email error reports. Provide customiseable error views.

`form`
  Construction of persistant forms/wizards for HTML interfaces.

`image`
  Create and manipulate graphics including JPG, PNG, PDF, PS.

`mail`
  Simple function to send email in HTML or plain text with a variety of options.

`session`
  Peristant storage of session data via an SQL database. Automatic cookie handling and full API.

`template`
  For the easy display of data as HTML/XML includes Cheetah, a poweful templating module.

`util`
  Useful utility functions

`wsgi`
  Support for the new Web Server Gateway Interface specification PEP 333.

`xml`
  Including DOM, SAX and XSL Transforms