Conrad Steenberg
conrad at hep.caltech.edu
Mon Aug 25 14:42:04 EST 2003
Hi Russel The way I do it is to have a handler that reposonds to GET requests. E.g. if you have a documentroot of /var/www/html: <Directory /var/www/html> SetHandler python-program AddHandler python-program .py PythonDebug On PythonHandler my_handler DirectoryIndex myhandler.py </Directory> I.e. myhandler.py is the directory index. Then inside the handler function in myhandler.py: def handler(req): if req.method=='GET': # Get the name of the file requested inputname=reduce(lambda x,y:x+'/'+y,string.split(req.uri, '/')[1:]) # Construct an outputname outputname='/var/www/html'+inputname # Send the file to the client send_file(req,outputname,0,-1) # Or your own function doing lots of req.write()'s return apache.OK This is pseudo-code taken from another implmentation, so play around with the inputname statement to get it right. But the idea is to get the filename from req.uri, and then construct a real filesystem filename, the contents of which can be sent to the client. An implementation of the send_file() function above is attached, making use of the req.write_file() function if available (I think it is in the CVS version), or a slower version based on req.write() HTH Conrad On Mon, 2003-08-25 at 13:54, Russell Nelson wrote: > Maybe this is really an Apache question, but it seems to me like it > ought to come up in a mod_python context as well. Can't find it in > the documentation, the FAQ, or the mailing list archives > (Aug/Jul/Jun). > > How do I cause my python script to be run when a .html file is accessed? > http://angry-economics.russnelson.com/index.html > > How do I cause my python script to be run when any old file is accessed? > http://angry-economics.russnelson.com/ > > In other words, I want a handler which gets run no matter what the > rest of the URL is. You'd think this would be in the documentation, > enabling people to make fully scripted sites, but it seems not to be. > > I can't insert a /foo.py/ in there because I have to preserve all the > old URLs. -- Conrad Steenberg <conrad at hep.caltech.edu> -------------- next part -------------- A non-text attachment was scrubbed... Name: clarens_file.py Type: text/x-python Size: 3547 bytes Desc: not available Url : http://mailman.modpython.org/pipermail/mod_python/attachments/20030825/886b9e84/clarens_file-0003.py
|