Python 是一種非常流行的編程語言,廣泛應用在Web開發中。其中,C.G.I. 是 Python 很少提到的一個方面,但卻無處不在。本文將從多個方面介紹 C.G.I. 在 Web 開發中的應用,以及詳細介紹代碼示例。
一、查詢字符串
查詢字符串是Web頁面URL的一部分,其中包含了需要發送到Web服務器上處理的變量和值。Python 的C.G.I.能夠非常方便地處理查詢字符串。下面的代碼是一個例子。
import cgi form = cgi.FieldStorage() print("Content-type: text/html") print() print("") print("Query String ") print("") print("Query String
") print("Name: {}
".format(form.getfirst("name"))) print("Age: {}
".format(form.getfirst("age"))) print("")
上面的代碼演示了如何從URL中獲取變量 name 和 age 的值。cgi.FieldStorage() 方法用於檢索查詢字符串中的變量和值。getfirst()函數用於獲取該變量的第一個值。可以通過表單提交這些參數到服務器端,也可以將它們作為URL的一部分來獲取。無論使用哪種方法,C.G.I.都能處理這些變量/值對。
二、解析表單數據
處理Web表單數據是Web開發的一個基本需求。Python 的C.G.I.能夠非常方便地處理表單數據。下面的代碼是一個例子。
import cgi form = cgi.FieldStorage() name = form.getvalue("name") age = form.getvalue("age") print("Content-type: text/html") print() print("") print("Form Data ") print("") print("Form Data
") print("Name: {}
".format(name)) print("Age: {}
".format(age)) print("")
上面的代碼演示了如何獲取表單中的變量和值。cgi.FieldStorage() 方法用於檢索Web表單數據。form.getvalue()函數用於獲取表單中給定變量的值。在這個例子中,我們可以通過HTML表單傳遞數據到服務器。
三、處理文件上傳
Web頁面中常常包含文件上傳功能。Python 的C.G.I.包含了處理上傳文件功能的模塊。下面的代碼是一個例子。
import cgi import os form = cgi.FieldStorage() fileitem = form["file"] if fileitem.filename: filename = os.path.basename(fileitem.filename) open("./uploads/" + filename, "wb").write(fileitem.file.read()) print("Content-type: text/html") print() print("") print("File Upload ") print("") print("File Upload
") print("File uploaded successfully!
") print("")
上面的代碼演示了如何上傳文件到服務器。C.G.I.提供了一個名為 FieldStorage() 的方法,可以用於檢索文件對象。cgi.FieldStorage() 方法獲取文件對象,文件對象“解包”成filename 和 file。文件名應該使用 os.path.basename() 方法提取出來,因為文件名包含可能對目錄的路徑進行提供相對位置,而不是僅僅是文件名。最後,該代碼將上傳的文件複製到服務器上的“uploads”目錄下。
四、數據庫連接
C.G.I.往往需要與數據庫建立連接,下面的代碼將演示如何使用 Python C.G.I.連接數據庫。
import cgi import mysql.connector form = cgi.FieldStorage() name = form.getvalue("name") cnx = mysql.connector.connect(user="myuser", database="mydb", password="mypassword") cursor = cnx.cursor() query = "SELECT * FROM mytable WHERE name = '{}'".format(name) cursor.execute(query) print("Content-type: text/html") print() print("") print("Database Connection ") print("") print("Database Connection
") print("Results:
") for row in cursor.fetchall(): print("{} - {}
".format(row[0], row[1])) print("") cursor.close() cnx.close()
上面的代碼演示了如何從網頁中連接到MySQL數據庫並檢索數據。C.G.I.提供了mysql.connector模塊可以用於連接MySQL數據庫。此代碼中,我們使用python的格式化字符串來構造SQL查詢語句(query)。執行查詢之後,我們循環遍歷結果,打印出每行數據。最後,我們關閉了數據庫連接。
五、小結
以上就是Python C.G.I.在Web開發中的一些應用。C.G.I. 是一種簡單且易於部署的Web框架,也是 Python Web 開發的一個核心方面。它最大的優點是它可以輕鬆地處理Web請求和響應,但不失靈活性。開發者可以使用 C.G.I. 來直接訪問底層的操作系統或其他Web服務器,並執行系統管理任務,如創建目錄、文件、數據庫,以及其他任務。Python 的 C.G.I.能夠非常方便地處理表單數據,文件上傳,以及與數據庫建立連接。C.G.I.可以被用在很多用例中,從靜態網站報告到大規模的動態Web應用程序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/284917.html