1.1 web -- Web modules

The web module provides some basic utility functions and objects which are used throughout the Web Modules.

Version Information

The web module has the following variables:

web.version_info
A tuple similar to sys.version_info in the form (major version, minor version, revision, release candidate, status)
web.version
The version as a string eg '0.4.0rc1'
web.name
The name of the modules as a string
web.date
The date of the release as a string in the format 'yyyy-mm-dd'.
web.status
The release status of the code. For example 'beta'

Useful Objects

The web module provides the following objects:

web.cgi
An object based on the cgi.FieldStorage() object. The web.cgi object is the main way in which you will gain access to information. web.cgi provides a dictionary-like interface to all the sumbitted CGI variables. You should not create your own cgi.FieldStorage object because your versions may not contain all submitted information because creating a cgi.FieldStorage object can destroy data that would have been used in subsequent creations. By using the one web.cgi object you avoid this problem.

See Also:

cgi Module Documentation
The cgi module documentation distributed with Python has more information about cgi.FieldStorage objects and a full functional specification.

Useful Functions

header( [type='text/html'])
Returns a Content-type HTTP header
type
The content-type to output

encode( html[, mode='url'])
Encode a string for use in an HTML document
html
The string to encode
mode
If mode is 'url' the html string is encoded for use in a URL. If mode is 'form' html is encoded for use in a form field.

Warning: The HTTP protocol doesn't specify the maximum length of URLs but to be absolutely safe try not to let them be longer than 256 characters. Internet Explorer supports URLs of up to 2,083 characters. Any long strings are better off encoded to be put as hidden values in a form with method="POST" rather than encoded and put in a link as they will then be sent in the HTTP header and there is no limit to their length. Creating links with huge amounts of text encoded in them may break result in strange results on different browsers.

See About this document... for information on suggesting changes.