使用Flask通过查询字符串传递变量的问题

时间:2017-07-13 21:28:26

标签: python flask

我有一个烧瓶路线,在处理变量时将变量作为查询字符串发送(我的默认值为None,因为第一次渲染此模板时不需要或传递令牌): / p>

@app.route('/results/', methods=['GET', 'POST'], defaults={'token': None})
@app.route('/results/<token>', methods=['GET', 'POST'])
def results(token):
    tags = request.form['text'].replace(' ', '').split(',')
    data = fetch_data(tags=tags, next_page_token=token)
    processed_data, token = process_data(data=data, tags=tags)

    return render_template('results.html', data=processed_data[:1], token=token)

这是模板:

<!DOCTYPE html>
<html>
<body style="background-color:powderblue;">

<h1>{{ data }}</h1>

<form action="{{ url_for('results', token=token) }}">
    <input type="submit" value="More results plz" />
</form>

</body>
</html>

由于某种原因,当我点击提交按钮时,我收到400错误10.51.50.1 - - [13/Jul/2017 18:00:45] "GET /results/J0HWWe1OgAAAF0HWWey_wAAAFoAKAA%253D%253D? HTTP/1.1" 400

并在页面上加载

Bad Request

The browser (or proxy) sent a request that this server could not understand.

我认为部分问题是?是在我经过的令牌之后,但我不确定原因。此外,当我尝试打印request.args时,我什么也得不到。

有关如何将令牌正确发送回路线的任何想法?

1 个答案:

答案 0 :(得分:0)

您在视图功能中有这一行:

request.form['text']

但我在名为<input>的模板中找不到text