Mod python入门

来自Ubuntu中文
跳到导航跳到搜索

mod_python

mod_python 是Apache网络服务器的扩展模块,它可以让python解释器直接成为Apache的一部分,使用mod_python处理程序框架可以访问丰富的API,深入Apache的内核等。 除了基本功能外,它还带有用于web开发的处理程序:

  • CGI处理程序,允许使用mod_python解释器运行CGI脚本
  • PSP处理程序,允许使用HTML以及Pyhthon代码混合编程创建可执行网页(executable webpage), 或者Python服务页(Python Server Page)
  • 发布处理程序,允许使用URL调用Pyhthon函数。
官方主页:http://modpython.org/

配置Apache

如果安装了mod_python后,可以检查Apache的相关配置是否启用,如果需要,请添加如下行至 http.conf或apache.conf (不同发行版可能使用不同的名字) 具体如下:

LoadModule python_module /usr/lib/apache2/modules/mod_python.so

如果要使用CGI处理程序,请将下面的配置加入 http.conf或apache.conf 中

<Directory /path/to/your/directroy >
AddHandler python-program .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>

Demo PyCGI

提交页面 /var/www/submit.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>OpenSSL证书认证管理中心</title>
</head>
<form action="http://127.0.0.1/pycgi/form/show" method="POST">
    Common Name <input type="text" name="name" />
                <input type="submit" value="提交" />
</form>
</html>

服务端处理脚本

/var/www/pycgi/form.py

#!/usr/bin/env python

import mod_python 
def show(req, name):
	s = """\
<html>
Dear %s,<br>
Thank You for your kind comments, we
will get back to you shortly.
</html>""" % name
        return s

Python logging 模块

import os
import logging
# 初始化  
logger = logging.getLogger()
  
#设置日志文件名称及其存储类型  
file = logging.FileHandler("/tmp/ca-create.log")  
logger.addHandler(file)  
#设置日志记录格式 
formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")  
file.setFormatter(formatter)   
#设置日志记录格式  
logger.setLevel(logging.NOTSET) 

#使用示例

result=os.system('openssl genrsa -out %s 2048' % CA_CONFIG)
logger.info(result)