一、CGI的概念
CGI的全稱是公共網關介面,主要是一種通信協議,它是Web伺服器和客戶端瀏覽器之間的一個介面,可以在伺服器端動態生成Web頁面。
CGI的原理是客戶端向Web伺服器發送請求,Web伺服器收到請求後,會將請求傳遞給伺服器上的CGI程序,執行CGI程序,CGI程序返回生成的HTML頁面,伺服器將執行結果返回給客戶端瀏覽器。
二、Python實現CGI的步驟
Python可以通過自帶的CGI模塊實現CGI功能,實現步驟如下:
1、在Web伺服器上創建CGI腳本文件,文件名必須以.py結尾,並設置文件許可權為可執行。
#!/usr/bin/env python print("Content-type: text/html\n") print("") print("") print("Hello, world!
") print("") print("")
2、在Web伺服器的配置文件中設置CGI文件夾路徑,並將該文件夾設置為可執行。
ScriptAlias /cgi-bin/ /var/www/cgi-bin/ <Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
3、在HTML文件中調用CGI文件。
<form action="/cgi-bin/hello.py" method="post"> <input type="submit" value="Click me!"> </form>
三、Python自帶CGI模塊的使用
Python自帶CGI模塊可以直接在Python中實現CGI功能,示例代碼如下:
#!/usr/bin/env python import cgi form = cgi.FieldStorage() print("Content-type: text/html\n") print("") print("") if "name" in form: print("Hello, " + form["name"].value + "!
") else: print("Hello, world!
") print("") print("")
該腳本可以接收POST請求,並輸出表單中提交的數據。
四、使用框架實現CGI功能
使用Python的Web框架也可以實現CGI功能,常見的Web框架有Django、Flask等,示例代碼如下:
from flask import Flask, request app = Flask(__name__) @app.route("/hello", methods=["POST"]) def hello(): name = request.form.get("name", "world") return "<h1>Hello, {}!</h1>".format(name) if __name__ == "__main__": app.run()
該腳本使用Flask框架實現了一個接收POST請求的API,並返回表單中提交的數據。
五、總結
CGI是一種Web伺服器和客戶端瀏覽器之間的通信協議,可以在伺服器端動態生成Web頁面。Python可以通過自帶的CGI模塊或使用Web框架實現CGI功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288783.html