在Flask中进行POST时保存GET URI

时间:2015-08-11 20:16:51

标签: python flask

我需要保存GET URI,以便在Flask中POST表单后使用它。问题是,在POST时它会被覆盖。这是代码(示意图):

@app.route('/test', methods=['get', 'post'])
def test_view():
    url_query = request.url.replace(request.base_url,'/')

    form = Form()
    if form.validate_on_submit():
      # at this point url_query is already overriten with '/'
      yadayada(url_query)

因此,例如,如果用户请求https://host/test?kekeke=nenene 我希望字符串“/ test?kekeke = nenene”会传递给yadayada(),但实际上它会被'/'覆盖。如何妥善解决?感谢。

1 个答案:

答案 0 :(得分:1)

设置Form操作以包含查询参数:

<form method="POST" action="{{ url_for('test_view', **request.args) }}">

request.args object可让您访问查询参数,url_for() function生成一个新网址,其中包含request.args中的每个键值对作为查询参数。

现在,当表单被POST时,会发送完全相同的查询参数,就像用于呈现表单的原始GET请求一样。