你是否想使用Python语言创建一个网页,或者处理用户从web表单输入的数据?这些任务可以通过Python CGI(公用网关接口)脚本以及一个Apache web服务器实现。当用 户请求一个指定URL或者和网页交互(比如点击""提交"按钮)的时候,CGI脚本就会被web服务器启用。CGI脚本调用执行完毕后,它的输出结果就会被web服务器用来创建 显示给用户的网页。
所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。
CGI文件的扩展名为.cgi,python也可以使用.py扩展名。
默认情况下,Linux服务器配置运行的cgi-bin目录中为/var/www。
如果你想指定其他运行CGI脚本的目录,可以修改httpd.conf配置文件.
1.配置Apache web服务器,让其能运行CGI脚本
MAC 上Apache web服务器已经安装好的,我们只需要对Apache 支持CGI 配置:即可使用。
进入/private/etc/apache2/httpd.conf
设置运行主机地址:
ServerName 127.0.0.1:80
Listen 80
设置HTML文件存放在web服务器上的/Library/WebServer/Documents
目录,并通过DocumentRoot指令指定(指定网页文件所在目录)
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
AllowOverride None
Options +ExecCGI
Order allow,deny
Order deny,allow
Allow from all
AddHandler cgi-script .cgi .py .sh .php
</Directory>
为了启用CGI脚本,我们必须指定CGI脚本在web服务器上的位置,需要用到ScriptAlias
指令:
ScriptAlias /Documents/ "/Library/WebServer/CGI-Executables/"
修改过程中可能会遇到无权修改问题:
可以用chmod -R 777 某文件
进行权限修改
修改完成之后终端输入:
sudo apachectl restart
重启Apache
2.配置完成之后对.py文件进编辑
下面访问URL:http://localhost/hello.py 这将会调用web服务器中下面所示脚本: /Library/WebServer/Documents/hello.py
Python CGI编程使用方法见菜鸟教程Python CGI编程
注意:
print () 最好使用 print ('') 或 print ("")
也可能会出现一些错误:
python出现Non-ASCII character '\xe7' in file ex6.py on line 1, but no encoding declare错误