Error : End of script output before headers while submiting html form in python-cgi

Error : End of script output before headers while submiting html form in python-cgi

我正在尝试创建一个表单并使用 python-cgi 将用户输入的数据获取到我的脚本中,但我收到此错误消息“在 [=28= 之前脚本输出结束]: processname.cgi". 我已经关注了各种博客和教程,但无法正常工作。

这是我的表单和 cgi 脚本。我在本地机器上使用 python3 和 xampp 服务器 (MAC OSX)

form.html

<DOCTYPE html>
<html>
  <head>
   <meta charset="utf-8"/>
    <title>Get name from User</title>
  </head>
  <body>
    <form method="post" action="processname.cgi">
      Please Enter Your name: <input type="text" name="username" placeholder="e.g. John" autofocus
  required="required"/>
    <br>
    <input type="submit" name="submitname" value="Submit"/>
    </form>
  </body>
</html>

这是我的cgi-script:processname.cgi

#!/usr/local/bin/python3
import cgi
import cgitb
cgitb.enable()
def htmlTop():
  print('''Content-type:text/html\n\n
  <!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="utf-8"/>
  <title>My Server Side template</title>
  </head>
  <body>''')
def htmlTail():
  print('''</body>
  </html>''')
def getData():
  formData = cgi.FieldStorage()
  firstname = formData.getvalue("username")
  return firstname
if __name__ == '__main__':
  try:
    htmlTop()
    firstname = getData()
    print("Hello {0}".format(firstname))
    htmlTail()
   except:
    cgi.print_exception()

我认为 out.You 必须使您的脚本可执行,然后重新启动服务器。

chmod 705 .../folders/scriptname.cgi

将使脚本可执行。