一、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
微信掃一掃
支付寶掃一掃