Allows dynamic handler registration. htype is a string
containing the name of any of the apache Python*Handler
directives, e.g. "PythonHandler". handler is a string
containing the name of the module and the handler function. Optional
dir is a string containing the name of the directory to be added
to the pythonpath. If no directory is specified, then, if there is
already a handler of the same type specified, its directory is
inherited, otherwise the directory of the presently executing handler
is used.
A handler added this way only persists throughout the life of the request. It is possible to register more handlers while inside the handler of the same type. One has to be careful as to not to create an infinite loop this way.
Dynamic handler registration is a useful technique that allows the
code to dynamically decide what will happen next. A typical example
might be a PythonAuthenHandler
that will assign different
PythonHandlers
based on the authorization level, something like:
if manager: req.add_handler("PythonHandler", "menu::admin") else: req.add_handler("PythonHandler", "menu::basic")
Note: There is no checking being done on the validity of the handler name. If you pass this function an invalid handler it will simply be ignored.
This method does nothing in multithreaded environments (e.g. Windows).
<Directory>
,
then the value will be an empty string.
Returns the a string with the remote client's DNS name or IP or
None
on failure. The first call to this function may entail a
DNS look up, but subsequent calls will use the cached result from the
first call.
The optional type argument can specify the following:
apache.REMOTE_HOST
Look up the DNS name. Fail if Apache
directive HostNameLookups
is off
or the hostname cannot
be determined.
apache.REMOTE_NAME
(Default) Return the DNS name if
possible, or the IP (as a string in dotted decimal notation)
otherwise.
apache.REMOTE_NOLOOKUP
Don't perform a DNS lookup, return an
IP. Note: if a lookup was performed prior to this call, then the
cached host name is returned.
apache.REMOTE_DOUBLE_REV
Force a double-reverse lookup. On
failure, return None.
PythonOption
directives.
Reads at most len bytes directly from the client, returning a string with the data read. If the len argument is negative or ommitted, reads all data given by the client.
This function is affected by the Timeout
Apache configuration
directive. The read will be aborted and an IOError raised
if the Timeout
is reached while reading client data.
This function relies on the client providing the Content-length
header. Absense of the Content-length
header will be treated as
if Content-length: 0
was supplied.
Incorrect Content-length
may cause the function to try to read
more data than available, which will make the function block until a
Timeout
is reached.
Note that in accordance with the HTTP specification, most clients will be terminating lines with "\r\n" rather than simply "\n".
Registers a cleanup. Argument callable can be any callable
object, the optional argument data can be any object (default is
None
). At the very end of the request, just before the actual
request record is destroyed by Apache, callable will be called
with one argument, data.