pyweblib.forms (version 0.15.0)
index
/usr/lib/python2.3/site-packages/pyweblib/forms.py

pyweblib.forms - class library for handling <FORM> input
(c) by Michael Stroeder <michael@stroeder.com>
 
This module is distributed under the terms of the
GPL (GNU GENERAL PUBLIC LICENSE) Version 2
(see http://www.gnu.org/copyleft/gpl.html)
 
Python compability note:
This module only works with Python 2.0 since all string parameters
are assumed to be Unicode objects and string methods are used instead
string module.
 
$Id: pyweblib.forms.html,v 1.17 2004/08/24 10:26:30 michael Exp $

 
Modules
       
pyweblib.helper
re
sys
types
urllib

 
Classes
       
exceptions.Exception
FormException
ContentLengthExceeded
InvalidFormEncoding
InvalidRequestMethod
InvalidValueFormat
InvalidValueLen
ParamsMissing
TooManyValues
UndeclaredFieldName
Field
Checkbox
Input
File
HiddenInput
Password
Keygen
Radio
Select
Textarea
Form

 
class Checkbox(Field)
    Check boxes:
<INPUT TYPE=CHECKBOX>
 
  Methods defined here:
__init__(self, name, text, maxValues=1, required=0, accessKey='', default=None, checked=0)
pattern and maxLen are determined by default
inputHTML(self, default=None, id_value=None, title=None, checked=None)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class ContentLengthExceeded(FormException)
    Overall length of input data too large.
 
Attributes:
contentLength         received content length
maxContentLength      maximum valid content length
 
 
Method resolution order:
ContentLengthExceeded
FormException
exceptions.Exception

Methods defined here:
__init__(self, contentLength, maxContentLength)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class Field
    Base class for all kind of single input fields.
 
In most cases this class is not used directly
since derivate classes for most types of input fields exist.
 
  Methods defined here:
__init__(self, name, text, maxLen, maxValues, pattern, required=0, default=None, accessKey='')
name
    Field name used in <INPUT NAME="..">
text
    User-friendly text describing this field
maxLen
    maximum length of a single input value [Bytes]
maxValues
    maximum amount of input values
default
    default value to be used in method inputfield()
required
    flag which marks field as mandantory input field
accessKey
    key for accessing this field to be displayed by method inputHTML()
pattern
    regex pattern of valid values either as string
    or tuple (pattern,options)
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class File(Input)
    File upload field
<input type="file">
 
 
Method resolution order:
File
Input
Field

Methods defined here:
inputHTML(self, default=None, id_value=None, title=None, mimeType=None)

Data and other attributes defined here:
mimeType = 'application/octet-stream'

Methods inherited from Input:
__init__(self, name, text, maxLen, maxValues, pattern, required=0, default=None, accessKey='', size=None)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class Form
    Class for declaring and processing a whole <form>
 
  Methods defined here:
__init__(self, inf, env)
Initialize a Form
inf                 Read from this file object if method is POST.
env                 Dictionary holding the environment vars.
addField(self, f)
Add a input field object f to the form.
checkRequestMethod(self)
Checks whether the HTTP request method is accepted
getContentType(self)
Determine the HTTP content type of HTTP request
getInputFields(self, ignoreEmptyFields=0, ignoreUndeclaredFields=0, stripValues=1, unquotePlus=0)
Process user's <form> input and store the values in each
field instance's content attribute.
 
When a processing error occurs FormException (or derivatives)
are raised.
 
ignoreEmptyFields=0         Ignore fields with empty input.
ignoreUndeclaredFields=0    Ignore fields with names not declared.
                            Normally UndeclaredFieldName is raised.
stripValues=1               If true leading and trailing whitespaces
                            are stripped from all input values.
unquotePlus=0
   If non-zero urllib.unquote_plus() is used instead of urllib.unquote().
getInputValue(self, name, default=[])
Return input value of a field defined by name if presented
in form input. Return default else.
hiddenInputFields(self, outf=<open file '<stdout>', mode 'w'>, ignoreFieldNames=[])
Output all parameters as hidden fields.
 
outf
    File object for output.
ignoreFieldNames
    Names of parameters to be excluded.

 
class FormException(exceptions.Exception)
    Base exception class to indicate form processing errors.
 
Attributes:
args          unstructured List of parameters
 
  Methods defined here:
__init__(self, *args, **kwargs)
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)
__str__(...)

 
class HiddenInput(Input)
    Hidden input field:
<input type="hidden">
 
 
Method resolution order:
HiddenInput
Input
Field

Methods defined here:
__init__(self, name, text, maxLen, maxValues, pattern, required=0, default=None, accessKey='')
inputHTML(self, default=None, id_value=None, title=None, show=0)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class Input(Field)
    Normal one-line input field:
<input>
 
  Methods defined here:
__init__(self, name, text, maxLen, maxValues, pattern, required=0, default=None, accessKey='', size=None)
inputHTML(self, default=None, id_value=None, title=None)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class InvalidFormEncoding(FormException)
    The form data is malformed.
 
Attributes:
param         name/value causing the exception
 
 
Method resolution order:
InvalidFormEncoding
FormException
exceptions.Exception

Methods defined here:
__init__(self, param)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InvalidRequestMethod(FormException)
    Exception raised when HTTP request method was invalid.
 
Attributes:
method        string containing method used
 
 
Method resolution order:
InvalidRequestMethod
FormException
exceptions.Exception

Methods defined here:
__init__(self, method)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InvalidValueFormat(FormException)
    The user's input does not match the required format.
 
Attributes:
name          name of input field (Field.name)
text          textual description of input field (Field.text)
value         input value received
 
 
Method resolution order:
InvalidValueFormat
FormException
exceptions.Exception

Methods defined here:
__init__(self, name, text, value)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InvalidValueLen(FormException)
    Length of user input value invalid.
 
Attributes:
name          name of input field (Field.name)
text          textual description of input field (Field.text)
valueLen      integer number of received value length
maxValueLen   integer number of maximum value length
 
 
Method resolution order:
InvalidValueLen
FormException
exceptions.Exception

Methods defined here:
__init__(self, name, text, valueLen, maxValueLen)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class Keygen(Field)
    Select field for client-side key generation with
Netscape/Mozilla/Opera browser:
<KEYGEN>
 
  Methods defined here:
__init__(self, name, text, maxLen, maxValues, required=0, minKeyLength=512)
inputHTML(self, challenge, id_value=None, title=None)
valueHTML(self)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.

 
class ParamsMissing(FormException)
    Required parameters are missing.
 
Attributes:
missingParamNames     list of strings containing all names of missing
                      input fields.
 
 
Method resolution order:
ParamsMissing
FormException
exceptions.Exception

Methods defined here:
__init__(self, missingParamNames)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class Password(Input)
    Password input field:
<input type=password>
 
 
Method resolution order:
Password
Input
Field

Methods defined here:
inputHTML(self, default=None, id_value=None, title=None)
valueHTML(self)
For security reasons only stars are printed

Methods inherited from Input:
__init__(self, name, text, maxLen, maxValues, pattern, required=0, default=None, accessKey='', size=None)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.

 
class Radio(Field)
    Radio buttons:
<INPUT TYPE=RADIO>
 
  Methods defined here:
__init__(self, name, text, maxValues=1, required=0, default=None, accessKey='', options=None)
pattern and maxLen are determined from __init__ params
Additional parameters:
options=[]
  List of options. Either just a list of strings
  ['value1','value2',..] for simple options
  or a list of tuples of string pairs
  [('value1','description1),('value2','description2),..]
  for options with different option value and description.
inputHTML(self, default=None, id_value=None, title=None)
setDefault(self, default)
Set the default of a default field.
 
Mainly this is used if self.default shall be changed after
initializing the field object.
setOptions(self, options)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class Select(Radio)
    Select field:
<select multiple>
  <option value="value">description</option>
</select>
 
 
Method resolution order:
Select
Radio
Field

Methods defined here:
__init__(self, name, text, maxValues, required=0, default=None, accessKey='', options=None, size=1, ignoreCase=0, multiSelect=0)
Additional parameters:
size
  Integer for the size of displayed select field.
ignorecase
  Integer flag. If non-zero the case of input strings is ignored
  when checking input values.
multiSelect
  Integer flag. If non-zero the select field has HTML attribute
  "multiple" set.
inputHTML(self, default=None, id_value=None, title=None)

Methods inherited from Radio:
setDefault(self, default)
Set the default of a default field.
 
Mainly this is used if self.default shall be changed after
initializing the field object.
setOptions(self, options)

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setRegex(self, pattern)
Set the regex pattern for validating this field.
 
Mainly this is used if self._re shall be changed after
the field object was initialized.
 
pattern
    Either a string containing a regex pattern,
    a tuple (pattern string, pattern options) or None.
    If None regex checking in _validateFormat is switched off
    (not recommended).
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

 
class Textarea(Field)
    Multi-line input field:
<textarea>
 
  Methods defined here:
__init__(self, name, text, maxLen, maxValues, pattern, required=0, default=None, accessKey='', rows=10, cols=60)
inputHTML(self, default=None, id_value=None, title=None)
Returns string with HTML input field.
setRegex(self, pattern)
Like Field.setRegex() but pattern options re.S and re.M are
automatically added.
valueHTML(self)
HTML output of self.value using the HTML template string
in self.valueHTMLTemplate.

Methods inherited from Field:
getValue(self)
Returns self.value in case of multi-valued input or
self.value[0] if only one value is allowed.
idAttrStr(self, id_value)
labelHTML(self, labelText=None, for_value=None)
setCharset(self, charset)
Define the character set of the user's input.
setDefault(self, default)
Set the default of a field.
 
Mainly this is used by the application if self.default shall
be changed after initializing the field object.
setValue(self, value)
Store the user's value into the field object.
 
This method can be used to modify the user's value
before storing it into self.value.

 
class TooManyValues(FormException)
    User's input contained too many values for same parameter.
 
Attributes:
name                  name of input field (Field.name)
text                  textual description of input field (Field.text)
valueCount            integer number of values counted with name
maxValueCount         integer number of maximum values with name allowed
 
 
Method resolution order:
TooManyValues
FormException
exceptions.Exception

Methods defined here:
__init__(self, name, text, valueCount, maxValueCount)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class UndeclaredFieldName(FormException)
    Parameter with undeclared name attribute received.
 
Attributes:
name          name of undeclared field
 
 
Method resolution order:
UndeclaredFieldName
FormException
exceptions.Exception

Methods defined here:
__init__(self, name)
__str__(self)

Methods inherited from FormException:
html(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
Functions
       
escapeHTML(s)
Escape all characters with a special meaning in HTML
to appropriate character tags

 
Data
        __version__ = '0.15.0'