You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python 3处理提交的表单:基于CGI包提取HTML表单数据

嘿,你的这个简易HTML表单写得挺扎实的!我帮你稍微优化下结构让它更规范,再给你写个对应的Python CGI脚本,用来提取表单提交的数据,这样整套流程就能跑起来啦~

优化后的HTML表单

我给表单加了一些细节优化,比如关联标签、必填校验,让页面更友好也更符合标准:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Deploy Process Submission</title>
</head>
<body>
    <h2>Deploy Process Form</h2>
    <form method="post" action="filename.cgi">
        <div>
            <label for="deploy_process_name">Deploy Process Name:</label><br>
            <input type="text" id="deploy_process_name" name="deploy_process_name" required>
        </div>
        <br>
        <input type="submit" name="submitXML" value="Submit XML"/>
    </form>
</body>
</html>

小说明:<label>标签能让点击文字也聚焦输入框,required属性会强制用户填写内容避免空提交,字符编码和语言的设置也能避免乱码问题。

Python CGI脚本实现(filename.cgi)

这就是用来接收表单数据的脚本啦,我加了调试和错误处理的部分,方便你排查问题:

#!/usr/bin/env python3
import cgi
import cgitb

# 开启错误追踪,调试的时候能看到详细报错
cgitb.enable()

# CGI要求必须先输出响应头,这一步可不能忘
print("Content-Type: text/html\n")

# 创建表单数据处理对象
form = cgi.FieldStorage()

# 提取表单字段,第二个参数是默认值,避免字段为空时报错
deploy_process_name = form.getvalue('deploy_process_name', '')
submit_trigger = form.getvalue('submitXML', '')

# 生成响应页面,把收到的数据展示出来
print("<html>")
print("<head><title>Submission Result</title></head>")
print("<body>")
print("<h2>Form Submission Received</h2>")
if deploy_process_name:
    print(f"<p>Your Deploy Process Name: <strong>{deploy_process_name}</strong></p>")
else:
    print("<p>Oops! You forgot to enter the Deploy Process Name.</p>")
print("<p><a href='javascript:history.go(-1)'>Go back to form</a></p>")
print("</body></html>")
关键注意事项
  • 得确保你的Web服务器(比如Apache)已经开启了CGI支持,并且把这个脚本放在服务器指定的CGI目录(通常是cgi-bin)里
  • 给脚本加可执行权限:在终端里跑chmod +x filename.cgi,不然服务器没法执行它
  • 如果还在使用Python 2,记得把脚本开头的#!/usr/bin/env python3改成#!/usr/bin/env python,不过还是建议用Python3啦,更稳定。

内容的提问来源于stack exchange,提问作者hodisr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:05:29