将HTML表单输入发送到python脚本

时间:2012-05-23 23:39:05

标签: python html get web2py

我正在尝试将HTML表单输入从页面发送到python脚本。这仅用于测试目的,因此请忽略糟糕的代码。基本上我不知道如何定义action=部分来引用python脚本中的search()函数。我只需要使基本功能正常工作。我使用web2py作为可能相关的框架:

Controller:default.py

def index():
    return dict()

def search():
    import urllib
    q=request.vars.q
    result1 = urllib.urlopen('http://www.google.com/search?q=%s' % q)
    return dict(result1=result1)

默认/ search.html:

{{extend 'layout.html'}}
<form method=get action=???>
<input name=q>
<input type=submit value=search>
</form>

2 个答案:

答案 0 :(得分:1)

看起来表单本身是通过search()函数提供的,因此您只需设置action="",它就会提交回search()函数。此外,您应该在HTML属性值周围加上引号,并且应该添加一些逻辑来检查request.vars.q中是否有任何内容,因为当页面首次加载空表单时,没有要处理的查询。 / p>

答案 1 :(得分:1)

您正在执行的操作对于GET请求是正确的。对于POST个请求,您需要将字段作为数据参数传递。

urllib.urlopen('http://www.google.com/search', data=urllib.urlencode({'q':'FOO'}))
例如,

将搜索作为POST请求。

有关详细信息,请参阅here