mod_python的HelloWorld:
在.htaccess里面需要添加这样的命令:
AddHandler mod_python .py
PythonHandler index
PythonDebug On
第一句指示目录下所有的对于.py的http请求都叫给mod_python处理,
第二句说mod_python的处理器是index,处理函数是handler,因为你指示了mod_python使用PythonHandler,mod_python转换它为小写并移除"python",所以"pythonHandler"变成了"handler",然后mod_python就会去index模块找handler函数,把httpreq作为一个参数传给它处理。
对上面这段话的逻辑理解得不是很清楚,可是mod_python中文文档http://man.chinaunix.net/develop/python/mod_python/mod_python.html是这么说的----我的理解是mod_python定义了PythonHandler这个接口,就是一个httprequest处理器,接口的形式是hander(req),你必须写成这样(当然参数不必是"req"),mod_python会来调用这个函数。我试过把PythonHandler改成PythonDealer,然后在index模块中写def
dealer(req):函数,结果apache报错: Invalid command
'PythonDealer', perhaps misspelled or defined by a module not included
in the server configuration。
文档里有这样一句话挺有意思:一些提示:如果你仔细阅读的话,就会发现URI只是指向了myscript.py这个文件,并没有指定处理器代码执行的顺序,实际上只要告诉处理器需要处理的是一个.py文件就可以了,文件的名字并不重要,即使URL中指向的文件并不存在.所以,对于上面的配置,[WWW]
http://myserver/mywebdir/myscript.py 和 [WWW]
http://myserver/mywebdir/montypython.py 执行的结果是一样的
还有一种方式是使用publisher
PythonHandler mod_python.publisher
其中的奥妙以后再看。