3

検索したワーを含めるようにURLを作成する方法を尋ねたいと思います。このようなもの:

http://host/filter?test

私のコード:

    @app.route('/filter', methods=['POST', 'GET'])
def filter():
        if request.method == 'POST':
            if str(request.form['search_string']) <> '':
                api.queryMessage(request.form['search_string'])
       return render_template('main.html', search_string=search_string)

そして私のテンプレート、main.html:

<form name="filters" action="{{ url_for('filter') }}" method=post id="filters">
   <div style="position: absolute; top:100px; left:300px">
       <p>Search string: <input type=text size=80 title="Match all of the words"   name=search_string value="{{search_string}}"></p>
       <input type=submit value=Filter/Search onclick=loopSelected();>
       <input type="hidden" name="chosen" id="chosen" value="{{chosen}}" />
   </div>
</form>
4

1 に答える 1

6

現在、POSTリクエストを使用しています。GETリクエストを使用すると、ブラウザはフォームの値をURLに配置します。

HTML形式でsetmethod= "GET":

<form name="filters" action="{{ url_for('filter') }}" method="GET" id="filters">

次の形式でURLを取得します。

http://host/filter?search_string=test&chosen=<id>&<some other trash>

Flaskでは、request.formの代わりにrequest.argsを使用します。

if request.method == 'GET':
    if request.args.get('search_string'):
        ...
于 2012-07-25T08:52:41.000 に答える