我正在使用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()是在其他文件中运行的查询,它如上所述正确运行。
任何想法如何实现?
答案 0 :(得分:0)
return redirect(url_for('.result'))
应该是:
return redirect(url_for('result'))
不需要点。
除非你想重新定义这个:
@app.route('/result', methods=['GET','POST'])
但我想这可能是一个错字。
另一方面,您可能需要检查要尝试放入会话的数据的大小。如果它超过浏览器支持的cookie大小,则不会设置。