|
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
|