📅  最后修改于: 2023-12-03 15:34:24.907000             🧑  作者: Mango
CGI(Common Gateway Interface)是一个标准,它定义了Web服务器如何与其它程序(通常是一个CGI脚本)进行通信,以便动态地生成Web页面。在Python中,CGI编程可以让我们在Web服务器上运行 Python 程序,并将其生成的页面展示给用户。
CGI编程的基本原理是:Web服务器接受到HTTP请求后,如果请求的链接是CGI脚本的链接,服务器就会将CGI脚本的执行结果作为HTTP响应返回给客户端。在Python中,我们可以借助cgi
模块来实现CGI编程。
以下是一个简单的CGI脚本示例:
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
import cgi
# 定义HTTP响应头部
print("Content-Type: text/html")
print()
# 输出HTTP响应体
print("<html><head><title>Hello CGI</title></head><body>")
print("<h2>Hello CGI Program!</h2>")
print("</body></html>")
代码说明:
cgi
模块;由于CGI编程需要将程序放在Web服务器上运行,因此我们需要将上述代码保存为一个CGI脚本文件,并将其放置在Web服务器的CGI目录中。
当我们需要向 CGI 程序传递用户输入的表单数据时,我们需要使用CGI模块中的FieldStorage
类来处理数据。
以下是一个使用CGI模块处理表单数据的示例:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import cgi
# 定义HTTP响应头部
print("Content-Type: text/html")
print()
# 创建FieldStorage实例
form = cgi.FieldStorage()
# 获取表单输入的内容
username = form.getvalue("username")
password = form.getvalue("password")
# 输出HTTP响应体
print("<html><head><title>Login</title></head><body>")
if username == "admin" and password == "123456":
print("<h2>Login Success</h2>")
else:
print("<h2>Login Failed</h2>")
print("</body></html>")
代码说明:
FieldStorage
实例,用来获取表单输入的内容;getvalue()
方法获取表单中输入的username
和password
;username
和password
输出HTTP响应体。CGI编程是Python Web编程中的重要组成部分,可以让我们在Web服务器上运行 Python 程序,并将其生成的页面返回给客户端。在Python中,我们可以通过cgi
模块来实现CGI编程,借助FieldStorage
类来处理表单数据。