前言
Pyhton CGI是Common Gateway Interface彪置,即通用網(wǎng)關(guān)接口拄踪。好吧,其實并不知道他的使用場景悉稠,我是在Python群里看見一個童鞋再問相關(guān)的問題宫蛆,感覺挺好玩于是自己也嘗試一下,順便解決那個童鞋的問題的猛。歡迎使用過的小伙伴告訴我一下使用場景耀盗。本實例基于ubuntu 16.04 ,python2.7卦尊,apache2.
CGI coding
1.我們寫個下載的功能叛拷,
vim download.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import cgi
# HTTP 頭部
print "Content-Disposition: attachment; filename=\"foo.txt\"";
# 打開文件
fo = open("foo.txt", "rb")
str = fo.read();
print str
# 關(guān)閉文件
fo.close()
2.同級目錄新建一個foo.txt,在里面輸入任意內(nèi)容。
3.python解釋器直接運行岂却,能夠打印出txt內(nèi)容即可忿薇。
搭建apache2 cgi運行環(huán)境
1.安裝apache2
sudo apt install -y apache2
2.開啟cgi
cd /etc/apache2/sites-enabled
sudo vim 000-default.conf
把Include conf-available/serve-cgi-bin.conf取消注釋
cd ../mods-enabled
#添加cgi模塊
sudo vim cgi.load
寫入 LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
cd ../conf-enabled
sudo vim serve-cgi-bin.conf
修改:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
添加:
AddHandler cgi-script .cgi .pl .py .sh
見下圖:
cgi.jpg
3.創(chuàng)建cgi目錄
cd /var/www/
sudo mkdir cgi-bin
cd cgi-bin
把之前的py和txt 拷貝進去
#賦予權(quán)限
sudo chmod +x *
4.重啟apache2
sudo service apache2 restart
打開瀏覽器測試
訪問地址:http://localhost/cgi-bin/download.py,自動下載了txt文件躏哩。
結(jié)語
猛一看瀏覽器直接運行py文件署浩,有木有很高大上。感興趣的可以嘗試一下扫尺。python的web框架異彩紛呈CGI的應(yīng)用場景在哪里筋栋?