CGI,全稱通用網關接口(Common Gateway Interface),指的是Web服務器提供的一種機制,可以同外部程序交換數據。在Web服務器接收到客戶端(如瀏覽器)發送的請求時,如果該請求是由CGI程序處理的,則Web服務器會將相關數據傳遞給指定的CGI程序,CGI程序接收到這些數據後,會處理這些數據,然後生成HTML頁面返回給Web服務器,最終Web服務器將HTML頁面返回給請求的客戶端。
Python作為一種簡單易學且功能全面的編程語言,有源代碼易讀性和跨平台特性,非常適合用於CGI編程。Python可以很輕易地通過CGI技術實現Web編程,能夠提供交互式的Web應用程序,增強用戶的使用體驗。本文將從以下幾個方面介紹如何輕鬆實現Python CGI頁面的交互性。
一、表單(Form)的構建和處理
表單是Web頁面中交互的重要元素之一,通常我們會使用表單來傳遞用戶輸入的數據。首先,我們需要使用HTML表單元素,來告訴瀏覽器這是一個表單元素。在Python的CGI程序中,我們可以從表單中獲取用戶數據,並根據數據的不同來做出相應的處理。下面是一個Python CGI處理表單元素的示範代碼:
import cgi form = cgi.FieldStorage() print "Content-type:text/html\r\n\r\n" print "" print "" print "Python CGI處理表單元素 " print "" print "" if form.getvalue("submit"): print "Hello %s
" % form.getvalue("name") print "" print "Please Enter Your Name
" print "
" print "" print "" print "" print ""
上面的代碼中,我們首先引入了cgi模塊,然後通過cgi.FieldStorage()函數,來獲取表單中的數據。獲取到數據後,我們可以根據不同的數據類型來做出相應的處理,例如展示不同的HTML頁面,或者將數據寫入到數據庫中。
二、Cookie的使用
Cookie通常用於存儲訪問者的信息,例如用戶名、用戶選擇的語言等。在Python的CGI程序中,我們可以非常容易地處理和創建Cookie。下面是一個Python CGI創建Cookie的示範代碼:
print "Content-type:text/html\r\n" print "Set-Cookie:username=CGIUser;expires=Wed, 18-Dec-2019 12:00:00 GMT" print "\r\n\r\n" print "" print "Python CGI創建Cookie " print "" print "Cookie已創建
" print ""
上面的代碼中,我們使用Set-Cookie響應頭來創建一個名為“username”的Cookie,Cookie的值為“CGIUser”。
三、使用AJAX創建動態Web應用程序
AJAX,全稱Asynchronous JavaScript And XML,即異步JavaScript和XML技術,是一種用於創建動態Web應用程序的技術。Python的CGI程序可以輕易地與AJAX技術配對使用,以創建更加交互式的Web應用程序。下面是一個Python CGI和AJAX配對使用的示範代碼:
print "Content-type:text/html\r\n\r\n"
print ""
print ""
print "Python CGI和AJAX配對使用 "print ""
print "function loadXMLDoc()"
print "{"
print "var xmlhttp;"
print "if (window.XMLHttpRequest)"
print " {// code for IE7+, Firefox, Chrome, Opera, Safari"
print " xmlhttp=new XMLHttpRequest();"
print " }"
print "else"
print " {// code for IE6, IE5"
print " xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');"
print " }"
print "xmlhttp.onreadystatechange=function()"
print " {"
print " if (xmlhttp.readyState==4 && xmlhttp.status==200)"
print " {"
print " document.getElementById('myDiv').innerHTML=xmlhttp.responseText;"
print " }"
print " }"
print "xmlhttp.open('GET','ajax.cgi',true);"
print "xmlhttp.send();"
print "}"
print ""print ""
print ""
print "使用AJAX創建動態Web應用程序
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/289072.html