使用pythonweb获取数据

使用pythonweb获取数据,python,form-data,Python,Form Data,我试图通过url将信息传递到python页面。我有以下链接文本: "<a href='complete?id=%s'>" % (str(r[0])) “返回!” 问题是,当我转到完整页面时,我在“id”上得到一个键错误。有人知道如何解决这个问题吗 编辑 当我运行cgi.test() 我认为我使用url的方式有问题,因为它没有通过 它基本上是localhost/chris/complete?id=1 /chris/是一个文件夹,complete是index.py中的一个函数 我格式

我试图通过url将信息传递到python页面。我有以下链接文本:

"<a href='complete?id=%s'>" % (str(r[0]))
“返回!”
问题是,当我转到完整页面时,我在“id”上得到一个键错误。有人知道如何解决这个问题吗

编辑
当我运行
cgi.test()

我认为我使用url的方式有问题,因为它没有通过

它基本上是localhost/chris/complete?id=1

/chris/是一个文件夹,complete是index.py中的一个函数


我格式化url的方式是否错误?

该错误意味着
表单[“id”]
无法在
cgi.FieldStorage()中找到键
“id”

要测试被调用URL中的键,请使用:

cgi.test()

健壮的测试CGI脚本,可用作主程序。写入最小的HTTP头并将提供给脚本的所有信息格式化为HTML格式

编辑:基本测试脚本(使用带有Linux路径的python cgi模块)只有3行。确保您知道如何在您的系统上运行它,然后从浏览器调用它以检查CGI端的参数是否可见。您可能还希望添加
import cgib;cgib.enable()


首先,你应该通过

possibly_none = my_dict.get( "key_name" )
因为这将不为变量赋值,如果该键不在dict中,则可以使用

if key is not None:
    do_stuff
习惯用法(是的,我喜欢空检查和一般的防御编程…)。python文档也提出了类似的建议

我认为你不必过多地钻研代码,应该参考

form.get( 'id' ).value

为了提取您似乎需要的数据。

您是否尝试打印表单的值以确保您得到了您认为得到的数据?不过,您的代码确实有点问题。。。您应该执行表单[“id”].value以从FieldStorage获取项的值。另一种选择是自己动手,就像这样:

import os
import cgi

query_string = os.environ.get("QUERY_STRING", "")
form = cgi.parse_qs(query_string)
这将导致如下结果:

{'id': ['123']}

文档显示了一个cgi.FieldStorage()示例:如果没有(form.has_key(“name”)和form.has_key(“addr”):…form.get('id')。值也不起作用。我得到一个属性错误。我认为我使用url的方式有问题,因为它没有被传递。要查看传递的内容,请使用cgi.test()。如果某个表单向完整页面发送数据时出现错误,则需要在问题中包含该表单。它似乎没有名为id.BTW的字段,在更改服务器状态(SQL删除)时,最好使用POST(然后是重定向),而不是GET。详细信息:
import os
import cgi

query_string = os.environ.get("QUERY_STRING", "")
form = cgi.parse_qs(query_string)
{'id': ['123']}