[mod_python] mod_python.publisher weirdness

Jorey Bump list+mod_python at joreybump.com
Wed Apr 14 21:37:51 EST 2004


Jeff Hinrichs wrote:

> ----- Original Message ----- 
> From: "Jorey Bump" <list+mod_python at joreybump.com>
>
>>For this reason, you should avoid setting your DirectoryIndex to a
>>python module (index.py). Use a gateway index.html page, instead, or
>>link directly to the python file.
> 
> Could you explain what you mean by gateway index.html page? Something that
> redirects requests to / to the proper module?

An example would be a form-based application. Let's say you have a 
survey about snakes, and want people to go to:

  http://www.example.com/survey/

This would take them to a default page named index.html, which would 
simply be a form with the action set to:

  http://www.example.com/survey/snake.py/submit

When someone submits the form, your module takes over, and returns a 
page that may contain links to other functions in snake.py. This allows 
you to keep your application's files in one directory, and distribute 
them easily to other mod_python installations (as long as they aren't 
already using another snake.py).

But don't think index.py is evil. You could put a single index.py in the 
root of your site, and drive the entire thing from it. Then you could 
create a new module for each application, give it a unique name, and 
keep it in the root directory alongside index.py. Putting all of your 
modules in one directory will help you to avoid name clashes, and 
encourage you to reuse code.

You could even put all of your modules in a directory in your 
PYTHONPATH, safely outside the DocumentRoot, and import them as needed. 
Each virtual host could have a directory appended to its PYTHONPATH and 
drive its entire site with index.py and any static files it might need, 
such as images. With simplicity comes enormous flexibility.



More information about the Mod_python mailing list