Python: module pyweblib.forms

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'