Graham Dumpleton
grahamd at dscpl.com.au
Sun May 7 04:09:43 EDT 2006
As a workaround for now, use the following for .htaccess file: SetHandler mod_python PythonHeaderParserHandler index::_fixup_directory PythonHandler mod_python.publisher PythonDebug On and in index.py file put: from mod_python import apache import os, posixpath def _fixup_directory(req): if os.path.isdir(req.filename): if req.filename[-1] == '/': path = posixpath.join(req.uri, 'index.py') req.internal_redirect(path) return apache.DONE return apache.OK def index(req): req.write("I am in index()") def bar(req): req.write("I am in bar()") Right now I'm not quite sure why it is mucking up but I'll look into it further. Graham On 07/05/2006, at 5:24 PM, Geoff Skerrett wrote: > > Gentlemen thanks for you help, and I hope you will be patient with > me. I > have solved the problem and while I know why it works, I am not > sure why my > solution was required as the documentation and your responses don't > seem to > suggest it as being needed. > > Explaination: > I modified the settings in my http.conf file for the directory as > suggested > and of course restarted the server. For this directory the setting > are now > as follows; > > <Directory "C:\Program Files\Apache Group\Apache2\htdocs\app/"> > SetHandler mod_python > PythonHandler mod_python.publisher > PythonDebug On > </Directory> > > I created a very simple program index.py program to help me > understand the > behavior. > It is as follows; > > ### Begin index.py > > def index(req): > req.write("I am in index()") > > def bar(req): > req.write("I am in bar()") > > ### End index.py > > In the browser if I type the following Http://localhost/app/index > The browser displays: "I am in index()" > > In the browser if I type the following Http://localhost/app/index/bar > The browser displays: "I am in bar()" > > In the browser if I type the following Http://localhost/app/bar > The browser displays: "I am in bar()" > > However ... > In the browser if I type the following Http://localhost/app/ > The brower displays the file download page and says it is trying to > open a > "httpd/unix-directory" file. If I save this file and view it, the > contents > are: > "I am in index()" > > So ... mod_python.publisher appears to be working correctly for all > cases, > except in the case where I think that it should automatically > default to > finding function "index()" within the module "index.py". > > If I modify my example program as follows; > > ### Begin index.py > > def index(req): > req.content_type = "text/plain" > req.write("I am in index()") > > def bar(req): > req.write("I am in bar()") > > ### End index.py > > Then the URI Http://localhost/app/ work file and displays "I am in > index() > in the browser. > > So after that long winded explanation ... Is there an addition/ > extra setting > in the http.conf file that I should be making to make the URI > resolution > work properly without having to set the content_type ? As I > mentioned at > the top, the docs don't seem to suggest the *content_type* setting > as being > a requirement. > > Glad I got I working though ... Now off to some more serious > development > issues ! > > Geoff. > > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python
|