cgi实现php,Python可以像PHP那样开发吗?Python+CGI实现详解……

看过我这篇文章的朋友一定知道,Python Web目前的两种开发方式:Python用来开发Web是怎么样的一个流程?看完你一定会恍然大悟

e2363ec889d94d734a2f0702f1d07121.png

一种是WSGI,一种则是CGI。

WSGI的提出源于改良CGI的不安全性,但是CGI却比WSGI快很多,所以CGI尽管不提倡,如果需要速度并且安全性要求不高的web应用,可以考虑用CGI来完成。

下面在Apache上实现Python CGI的开发。

开始之前关闭iptables和SELinux:

iptables -F && setenforce 0

8f328fa7b92423e870935b74acdfac52.png

安装Apache并配置CGI

首先安装Apache:yum install httpd -y

安装完成之后重启服务,然后打开页面测试是否正常运行。

f73164ae0ef0831520e97f3149e1d36c.png

vim打开apache配置文件:vim /etc/httpd/conf/httpd.conf

查找ScriptAlias关键字设置CGI目录:按ESC进入命令模式,然后":/Script",如图

3a8c6389c59f83ed398963d53e031caa.png

修改ScriptAlias /cgi-bin/ "/pycgi/"

这里我放根目录/pycgi,最后面的一个段为cgi目录

查找AddHandler,添加py后缀支持

84302b128f058c1bb5acdacb0dfbf7b9.png

把前面的注释去掉,然后添加.py

修改DocumentRoot 为 "/pycgi"修改默认Directory文件节点为修改Option Indexs FollowSymLinks为Options +ExecCGIAllowOverride None修改为AllowOverride NoneAll

43120eb953268d7012453fcdb71bded4.png

添加index.py主页支持:添加index.py到DirectoryIndex尾端

df766268ca68bdd0b1d371e79c9e023d.png

Hello Python CGI

创建一个py文件作为主页:touch index.py

给其它用户可读可写权限:chmod 755 index.py(一定要可读可写,否则apache会报Internal Server Error)

vim index.py

bbaf5b2d55e6623b5e8cdd1ae125db15.png

写个简单的Hello Python CGI,简单到不能再简单了。

60b097bedce2fa3e3648d31912446517.png

这只是print出html文件内容,注意的是Content-type:text/html是告诉浏览器文件类型为html文件,它是一个http头部信息。

我们还可以给它加一个cookie,例如就加上__file__变量。

print("Set-Cookie:%s" %(__file__))

3902d527ac19ddb30f41cab5c020c19b.png

看看结果如何

01dbb28f94cf99c491fd1b213b755e62.png运行结果

60799d3715d726562a753af855b7d07e.pngcookie设置成功

值得注意的是:Nginx并不支持CGI,不过支持Perl FastCGI,所以如果是Nginx,还请乖乖的用WSGI

某些CSDN作者请勿复制粘贴,码字不易,请备注出处链接,谢谢理解。

斌哥说Python,只专注于Python技术!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值