从第二个python文件访问python打印的HTML数据

时间:2014-06-14 20:53:01

标签: python html import

这是我尝试访问的数据,来自guessAnswer.py:

#!/usr/bin/python
print 'content-type: text/html'
print

import cgi
import cgitb; cgitb.enable()

userAnswer = cgi.FieldStorage()
userAnswer['userAnswer'].value

基本上,我从file1.py打印HTML,并在服务器上成功读取。

print '''<br> <form action='guessAnswer.py'>
              <input name="userAnswer">
          </form>
     </b> </center> </h2>'''

但是,我似乎无法从guessAnswer.py获取用户输入的数据,因为file1.py是一个python文件。

如何访问用户数据呢?或者这个代码是否正常,我的程序的其他部分是导致问题的?

当我在命令提示符下运行文件时,在错误结束时,我得到:

Traceback (most recent call last):
  File "guessAnswer.py", line 115, in &lt;module&gt;
    print '&lt;center&gt; &lt;h1&gt; Your guess is &lt;b&gt; ' + guessTestTakers(hw22.someHighSchool,     userInput['userAnswer'].value) + '&lt;/b&gt
t;/h1&gt; &lt;/center&gt;'
  File "C:\Python27\lib\cgi.py", line 540, in __getitem__
    raise KeyError, key
KeyError: 'userAnswer'

1 个答案:

答案 0 :(得分:1)

至少在使用命令提示符运行它时,您知道guessAnswer.py正在运行(因为它在该文件中出错)。你知道它是否在你使用浏览器运行时运行?在guessAnswer.py上为所有用户设置执行(和读取?)权限。确保找到它的路径;也许在1.py中插入指向guessAnswer.py的显式路径或整个URL,至少作为测试。

考虑将guessAnswer.py导入1.py. (我不确定这是否有效。)您需要设置路径(UNIX中的PYTHONPATH)以确保可以找到它。

cgi。注意&#34;常见问题和解决方案&#34;底部附近;例如:&#34;大多数HTTP服务器缓冲CGI脚本的输出,直到脚本完成。这意味着在脚本运行时无法在客户端显示器上显示进度报告。&#34;

或者这可能是问题所在:&#34;包含空字符串的表单字段将被忽略,并且不会出现在字典中;保留这些值,在创建FieldStorage实例时为可选的keep_blank_values关键字参数提供真值。&#34;也就是说,您可以将其更改为userAnswer = cgi.FieldStorage(keep_blank_values=True)

尝试插入类似&#34的提示;请输入您的猜测:&#34;在表单标签内,例如&#34;名字:&#34;在此示例中:http://www.w3schools.com/tags/att_form_action.asp您是否在使用浏览器运行时看到了提示?

使用浏览器运行时会发生什么?你有机会输入数据吗?你到底看到了什么?什么是错误消息或其他结果,让您知道您的脚本没有看到数据?

请详细说明当您说“内部服务器错误&#34;

时出现的错误消息。”

[我之前说的是:请澄清一下。用户是否正在运行浏览器? guessAnswer.py是你正在运行的程序吗?浏览器是否导致该程序运行,如果是,如何运行?或者您是从命令行运行程序?第二组代码是否已经给出了1.py的内容?举例说明用户输入的内容。你看见什么了? (错误消息?空白网页?挂起的命令?)]