python在线表单(例如反馈)不工作

时间:2012-12-05 17:24:31

标签: python forms cgi

我正在学习python,所以我从一本书中得到了这个练习: 这是一个HTML格式:

<html>
  <body>
    <form method=POST action="cgi-bin/cgi101.py">
      <P><b>Enter your name:</b>
      <P><input type="text name=user" />
      <P><input type="submit" />
    </form>
  </body>
</html>

这是要调用的脚本:

#!/usr/bin/python3
import cgi
form = cgi.FieldStorage()
# parse form data
print('Content-type: text/html\n')
# hdr plus blank line
print('<title>Reply Page</title>')
# html reply page
if not 'user' in form:
  print('<h1>Who are you?</h1>')
else:
  print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form['user'].value))

通过逻辑,如果我输入用户,它必须打印

Hello用户

。但它给了

你是谁?

。这意味着脚本在表单中看不到用户。为什么? 在apache中允许cgi / py脚本用于cgi-bin /。

1 个答案:

答案 0 :(得分:1)

你这里有一个错字:

<input type="text name=user" />

这实际上应该是这样的:

<input type="text" name="user" />

type和name是输入HTML标记上的每个属性。他们将永远的形式是:

<sometag attribute1="a thing" attribute2="another thing" />

请注意报价的位置和等号。一个好的文本编辑器可以帮助你的眼球更清楚地看到这一点。