一 、CGI 編程之前綴篇
CGI 目前由NCSA維護,NCSA定義CGI如下:
CGI(Common Gateway Interface),通用網關接口,它是一段程序,運行在服務器上如:HTTP服務器,提供同客戶端HTML頁面的接口。
網頁瀏覽
為了更好的了解CGI是如何工作的,我們可以從在網頁上點擊一個鏈接或URL的流程:
1、使用你的瀏覽器訪問URL并連接到HTTP web 服務器。
2、Web服務器接收到請求信息后會解析URL,并查找訪問的文件在服務器上是否存在,如果存在返回文件的內容,否則返回錯誤信息。
3、瀏覽器從服務器上接收信息,并顯示接收的文件或者錯誤信息。
CGI程序可以是Python腳本,PERL腳本,SHELL腳本,C或者C++程序等。
第一個CGI程序
我們使用Python創建第一個CGI程序,文件名為hello.py,文件位于/var/www/cgi-bin目錄中,內容如下:
print ("Content-type:text/html")
print () # 空行,告訴服務器結束頭部
print ('')
print ('')
print ('
')
print ('
Hello Word - 我的第一個 CGI 程序!
')
print ('')
print ('')
print ('
Hello Word! 我是來自菜鳥教程的第一CGI程序
')
print ('')
print ('')
簡單的url實例:GET方法
以下是一個簡單的URL,使用GET方法向hello_get.py程序發送兩個參數:
import codecs ,sys
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
#CGI處理模塊
import cgi, cgitb
#創建 FieldStorage 的實例化
form = cgi.FieldStorage()
#獲取數據
site_name = form.getvalue('name')
site_url = form.getvalue('url')
print ("Content-type:text/html")
print ()
print ("")
print ("")
print ("
")
print ("
The site of Mr.chen
")
print ("")
print ("
")
print ("
")
print ("")
print ("")
print ("
%s官網:%s
" % (site_name, site_url))
print ("")
print ("")
GET和POST方法
瀏覽器客戶端通過兩種方法向服務器傳遞信息,這兩種方法就是 GET 方法和 POST 方法。
使用GET方法傳輸數據
GET方法發送編碼后的用戶信息到服務端,數據信息包含在請求頁面的URL上,以"?"號分割, 如下所示:
http://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2 有關 GET 請求的其他一些注釋:
GET 請求可被緩存
GET 請求保留在瀏覽器歷史記錄中
GET 請求可被收藏為書簽
GET 請求不應在處理敏感數據時使用
GET 請求有長度限制
GET 請求只應當用于取回數據
簡單的url實例:GET方法
以下是一個簡單的URL,使用GET方法向hello_get.py程序發送兩個參數:
/cgi-bin/test.py?name=菜鳥教程&url=http://www.runoob.com
#!/usr/bin/python3
CGI處理模塊
import cgi, cgitb
#創建 FieldStorage 的實例化
form = cgi.FieldStorage()
#獲取數據
site_name = form.getvalue('name')
site_url = form.getvalue('url')
print ("Content-type:text/html")
print ()
print ("")
print ("")
print ("
")
print ("
菜鳥教程 CGI 測試實例
")
print ("")
print ("")
print ("
%s官網:%s
" % (site_name, site_url))
print ("")
print ("")
使用POST方法傳遞數據
使用POST方法向服務器傳遞數據是更安全可靠的,像一些敏感信息如用戶密碼等需要使用POST傳輸數據。
以下同樣是hello_get.py ,它也可以處理瀏覽器提交的POST表單數據:
#!/usr/bin/python3
#CGI處理模塊
import cgi, cgitb
#創建 FieldStorage 的實例化
form = cgi.FieldStorage()
#獲取數據
site_name = form.getvalue('name')
site_url = form.getvalue('url')
print ("Content-type:text/html")
print ()
print ("")
print ("")
print ("
")
print ("
菜鳥教程 CGI 測試實例
")
print ("")
print ("")
print ("
%s官網:%s
" % (site_name, site_url))
print ("")
print ("")
以下為表單通過POST方法(method=“post”)向服務器腳本 hello_get.py 提交數據:
下為表單通過POST方法(method=“post”)向服務器腳本 hello_get.py 提交數據:
菜鳥教程(runoob.com)
https://www.runoob.com/python3/python3-cgi-programming.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
