使用Flask在主视图上检索POST请求数据

时间:2015-07-31 21:49:57

标签: python post flask request

我的html文件中有以下代码

    <form role="form" class="animate" data-animate="fadeInUp" method="post" action="{{ url_for('test') }}">
        <div class="input-group">

            <div id="the-basics">
                <input id="search" type="text" class="typeahead form-control input-lg" placeholder="Search">
            </div>

            <span class="input-group-btn">
                <button class="btn btn-lg btn-default" type="submit">Search</button>
            </span>
        </div>
    </form>

但是当我尝试在view.py上获取值时,我得到:

@app.route('/test', methods=['GET', 'POST'])
def test():
    print request.form
    print request.data
    return 'OK'

>> ImmutableMultiDict([])

为什么我无法打印输入框上写的值的任何线索?

2 个答案:

答案 0 :(得分:1)

首先,您需要为输入标记添加name属性。像这样:

<input name="search" id="search" type="text" class="typeahead form-control input-lg" placeholder="Search">

您尝试打印的request.form对象实际上是一个字典。它包含表单中的值,按名称属性排序。要检索搜索框中的值,您需要访问字典中的搜索值:

request.form['search']

希望这会有所帮助。

答案 1 :(得分:0)

试试这个print(request.form.get("search"))