我正在使用Python Flask制作一个页面以运行elasticsearch查询,然后将结果传递到另一个“结果”页面,但是当我重新启动该应用程序时,控制台中显示的正确结果却不存在。
下面的代码运行,
class Kannel(Form):
number = StringField('MSISDN', [validators.Length(max=16)])
ID = StringField('MessageID', [validators.Length(max=50)])
@app.route('/Kannel', methods=['POST','GET'])
def kannel():
form = Kannel(request.form)
if request.method == 'POST' and form.validate():
number = request.form['number']
ID = request.form['ID']
res = search(number)
session['res'] = res
flash("Redirecting to results ...")
return redirect(url_for('result'))
else:
return render_template('kannel.html', form=form)
@app.route('/result', methods=['GET','POST'])
def result():
output = session.get('res')
return render_template('result.html', output=output)
search()是要在其他文件中运行的查询,它如上所述可以正确运行。
任何想法如何实现?
最佳答案
return redirect(url_for('.result'))
应该:
return redirect(url_for('result'))
不需要圆点。
除非您要重新定义:
@app.route('/result', methods=['GET','POST'])
但是我想这可能是错别字。
另一方面,您可能需要检查要放入 session 中的数据的大小。如果超过浏览器支持的cookie大小,则不会设置它。
关于python - 将查询结果重定向到另一个页面 flask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132351/