1

ページから Python スクリプトに HTML フォーム入力を送信しようとしています。これはテスト目的のためだけなので、貧弱なコードは無視してください。Pythonスクリプトで関数action=を参照する部分の定義の仕方が基本的にわかりません。search()基本的な機能を動作させる必要があるだけです。おそらく関連するフレームワークとしてweb2pyを使用しています:

コントローラー: 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>
4

2 に答える 2

1

フォーム自体は search() 関数を介して提供されるように見えるため、 を設定するだけでaction=""、 search() 関数に送信されます。また、HTML 属性値を引用符で囲み、request.vars.q に何かがあるかどうかを確認するロジックを追加する必要があります。これは、ページが最初に空のフォームで読み込まれたときに、処理するクエリがないためです。

于 2012-05-23T23:59:45.320 に答える
1

あなたがそこでしていることは、GET要求に対して正しいです。リクエストの場合POST、フィールドをデータ パラメータとして渡す必要があります。

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

POSTたとえば、リクエストとして検索を行います。

詳細については、こちらを参照してください。

于 2012-05-24T00:00:06.227 に答える