[mod_python] ZSI and mod_python

justind justind at ussonet.net
Fri Aug 11 16:45:35 EDT 2006

I posted on the ZSI board to, thought I better here just to cover all 
the bases.

Has anyone used ZSI with mod_python? If so, there is an example of how 
to use ZSI with mod_python in ZSI's documentation.

This feels  like a "I'm being stupid and forgetting/overlooking 
something obvious" type of problem.

 From the example below, there is a module called MyHandler that has 3 
functions (hello,echo and average). You expose these functions through 
the dispatch.AsHandler() function in the mod_python code.
Suppose that I only wanted to expose the hello and echo functions, but 
not the average function. I want to keep the average function in the 
module because some other function(s) I will make later will use it.

(Section 2.1.3).

The following is a complete example of a simple handler. The soap 
operations are implemented in the MyHandler module:

def hello():
    return "Hello, world"

def echo(*args):
    return args

def average(*args):
    sum = 0
    for i in args: sum += i
    return sum / len(args)

Dispatching from within mod_python is achieved by passing the 
aforementined MyHandler module to |dispatch.AsHandler()|. The following 
code exposes the operations defined in MyHandler via SOAP:

from ZSI import dispatch
from mod_python import apache

import MyHandler
mod = __import__('encodings.utf_8', globals(), locals(), '*')
mod = __import__('encodings.utf_16_be', globals(), locals(), '*')

def handler(req):
    dispatch.AsHandler(modules=(MyHandler,), request=req)
    return apache.OK

More information about the Mod_python mailing list