我需要保存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(),但实际上它会被'/'覆盖。如何妥善解决?感谢。
答案 0 :(得分:1)
设置Form
操作以包含查询参数:
<form method="POST" action="{{ url_for('test_view', **request.args) }}">
request.args
object可让您访问查询参数,url_for()
function生成一个新网址,其中包含request.args
中的每个键值对作为查询参数。
现在,当表单被POST时,会发送完全相同的查询参数,就像用于呈现表单的原始GET请求一样。