将查询结果重定向到另一个页面瓶

时间:2017-09-09 15:46:01

标签: python elasticsearch flask

我正在使用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()是在其他文件中运行的查询,它如上所述正确运行。

任何想法如何实现?

1 个答案:

答案 0 :(得分:0)

return redirect(url_for('.result'))

应该是:

return redirect(url_for('result'))

不需要点。

除非你想重新定义这个:

@app.route('/result', methods=['GET','POST'])

但我想这可能是一个错字。

另一方面,您可能需要检查要尝试放入会话的数据的大小。如果它超过浏览器支持的cookie大小,则不会设置。