如何在日常編碼中最佳利用Python CGI?
Python是當今市場上功能最豐富的編程語言之一。Python受歡迎的主要原因是它帶來的眾多功能以及其在多個平臺上的多功能性。我們被問到最多的Python編程系統的功能之一就是Python CGI,因此在本文中,我們將更多地討論Python CGI,其用法以及如何在日常編碼中實現它。
本文將介紹以下指針,
什么是CGI?
Python CGI程序的結構
CGI環境變量
那我們開始吧
Python CGI
什么是CGI?
CGI或Common Gateway Interface(通用網關接口)是設置方法的行業公認縮寫,該方法用于定義Web服務器和自定義腳本之間如何交換信息。迄今為止,CGI腳本已由NCSA正式維護。
在Python中使用CGI
如前一段所述,CGI是一種編寫程序的方式,該程序能夠通過在另一臺Web服務器上運行的Web服務器交換數據。
在Python接口上編寫CGI程序時要注意的最重要的事情之一是,編寫CGI程序是為了動態生成網頁,這些網頁不僅可以從用戶那里獲取輸入,還可以同時顯示輸出。
例
為了理解Python中CGI編程的概念,讓我們看下面的示例。
注意:您需要已經安裝apache2才能執行以下示例。默認情況下,名為“ hello.py”的程序將在主機127.0.0.1上運行。
#!/usr/bin/python3 # Importing the 'cgi' module import cgi print("Content-type: text/htmlrnrn") print("
") print("Hello Program!
") # Using the inbuilt methods form = cgi.FieldStorage() if form.getvalue("name"): name = form.getvalue("name") print("Hello" +name+"! Thanks for using my script!
") if form.getvalue("happy"): print(" Yayy! I'm happy too! ") if form.getvalue("sad"): print(" Oh no! Why are you sad? ") # Using HTML input and forms method print(" ")輸出量
讓我們看看Python CGI程序的結構是什么,
Python CGI程序的結構
既然您知道了CGI程序在Python中的外觀,那么讓我們仔細看一下它的結構。
用Python編寫的CGI腳本的輸出必須包含兩個由空白行分隔的部分。
第一部分將包含描述的標頭,第二部分將包含在腳本執行期間將使用的數據類型。
要了解這一點,請看下面的示例。
print ("Content-Type : text/html") # then comes the rest hyper-text documents print ("") print ("
") print ("This is HTML's Body section
") print ("") print ("")輸出量
為了在Python中使用CGI模塊,您首先需要將其導入Python IDLE。要做的語法如下。
導入cgitb
cgitb.enable()
通過使用上面的代碼,基本上可以觸發特殊異常處理程序的形成,該異常處理程序能夠在執行時在瀏覽器中顯示任何運行時錯誤。
語法圖例
使用Python編寫CGI程序腳本時,請注意以下常用語法。
HTML
Content or Type: text/html
Location: URL
Expires: Date
Content Length: N
Set Cookie: String
讓我們看一下Python CGI文章的最后一部分,即環境變量,
CGI環境變量
除了上面共享的HTM1語法外,您還需要對常用的CGI環境變量進行注釋。
CONTENT_TYPE:用于描述數據和內容類型。
CONTENT_LENGTH:主要在Post中使用,以定義查詢或信息的長度。
HTTP_COOKIE:如果在特定情況下,用戶設置了cookie,則將其用于返回該cookie。
HTTP_USER_AGENT:如果需要查看用戶當前使用的瀏覽器類型,那么將使用此變量。
REMOTE_HOST:用于定義訪問者的主機名。
PATH_INFO:用于定義CGI腳本的路徑。
REMOTE_ADDR:如果需要定義訪問者的IP地址,則可以使用此變量。
REQUEST_METHOD:用于通過POST或GET發出請求。
Git GitHub Linux Python SVN
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。