Atitit.python web环境的配置 attilax 总结

Atitit.python web环境的配置 attilax 总结

 

1下载modpython/1

1.1. 安装python2.5.11

1.2. 安装modpython1

2设置py文件的url请求器2

3www/py/t.py2

4访问url  http://localhost/py/t.py/handler2

5高级知识2

5.1. 原生(native)mod_python处理器 2

5.2. 那么mod_python到底做了些什么呢?3

6参考5

 

1. 下载modpython/

目前只有mod_python-3.3.1.win32-py2.5-Apache2.2是编译的。。

2.7的需要自己编译。。。

 

http://archive.apache.org/dist/httpd/modpython/

 

http://archive.apache.org/dist/httpd/modpython/
去找,只有python2.5是编译好的,其它的需要编译,不过其实可以把文件中的python25.dll改为你想要的python27.dll,因为这几个版本基本上是兼容的。

 

 

 

1.1. 安装python2.5.1

 

 

1.2. 安装modpython

D:\wamp\bin\apache\Apache2.2.21\modules\mod_python.so

修改http.conf

增加LoadModule python_module modules/mod_python.so 

 

 

 

2. 设置py文件的url请求器

可以设在在htt.pConfi文件里面

也可以设置在.htaccess 文件里面

 

 AddHandler mod_python .py 

  SetHandler mod_python

PythonHandler mod_python.publisher

#mod_python.publisher

PythonDebug On 

 

3. www/py/t.py

from mod_python import apache 

def handler(req): 

req.content_type = 'text/plain' 

req.write("Hello World!") 

return apache.OK 

 

 作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

 

4. 访问url  http://localhost/py/t.py/handler

注意url要访问到模块的方法中。

 

 

5. 高级知识

5.1. 原生(native)mod_python处理器 

  <Directory /mywebdir>

       AddHandler mod_python .py

       PythonHandler myscript

       PythonDebug On

    </Directory>

 

 

 

from mod_python import apache 

def handler(req): 

req.content_type = 'text/plain' 

req.write("Hello World!") 

return apache.OK 

 

访问urlxxxx.py模块为止

 

 

5.2. 那么mod_python到底做了些什么呢?

假设我们有下面的配置文件:

    <Directory /mywebdir>

       AddHandler mod_python .py

       PythonHandler myscript

       PythonDebug On

    </Directory>

注意: /mywebdir 是一个物理绝对路径。 还有一个python程序‘/mywedir/myscript.py’如下:

from mod_python import apache

def handler(req):

   req.content_type = "text/plain"

   req.write("Hello World!")

   return apache.OK

解释一下这个程序:

addHandler 指示告诉 apache, 所有在mywebdir目录或者是它的子目录下的所有.py文件,有关于这些文件的任何请求都用mod_python 来处理, pythonHandler myscript 指示告诉 mod_python 用 myscript 执行默认的处理器. “pythonDebug On” 指示告诉mod_python如果发生错误,就把错误信息打印到客户端 (相对于写入日志文件),在开发的时候这个选项非常有用。

当一个请求发出时,apache通过调用mod_python中的处理器分步处理请求,Mod_python首先检查请求的那个处理器是否在配置文件中指定了(记住,它的角色是发报机dispatcher),在我们的例子中,mod_python除了调用默认的那个处理器外不会调用其他的任何处理器,然后,mod_python会发现"pythonHandler myscript"指示,并按照下面的步骤来进行:

1.如果以前没有做过,那么就把pythonHandler指定的那个目录加到sys.path中。

2.尝试引入myscript的模块(注意,如果myscript在pythonHandler指定那个目录的子目录中的话,引入会出错,因为子目录并没有加到sys.path中,解决这种情况的方法是使用包)例如:”pythonHandler subdir.myscript”

3.在myscript中寻找名字叫handler的方法。

4.调用这个方法,并把request对象传递给它。

5.现在让我们深入这段脚本看一下:

from mod_python import apache 

这个引入语句提供给我们一个访问apache的接口。除了极少数情况外,每一个mod_python程序一般都会有这一行。

def handler(req): 

这是处理器方法的声明,它之所以叫"handler"是因为mod_python在指示中使用这个名字,转换它为小写并移除"python",所以"pythonHandler"变成了"handler",你可以给它起别的名字,并且通过在指示中使用"::"明确的指定它.举个例子,如果处理器方法叫"spam",那么指示就应该是”pythonHandler myscript::spam”。

注意处理器必须有一个参数

 

6. 参考

Mod_Python中文文档.htm

apache(wamp) 添加python支持 - EI__Nino的专栏 博客频道 - CSDN.NET.htm

Windows平台的Apache中配置Python_编程开发_软件教程_脚本之家.htm

posted @ 2015-12-25 19:49  attilaxAti  阅读(170)  评论(0编辑  收藏  举报