我有一个小型日志浏览器。它根据用户的输入检索并显示以前记录的记录列表。它不更新任何内容。
代码非常简单并且运行良好。这是一个简化版本:
@app.route('/log', methods=['GET', 'POST'])
def log():
form = LogForm()
if form.validate_on_submit():
args = parse(form)
return render_template('log.html', form=form, log=getlog(*args))
return render_template('log.html', form=form)
但是它不遵循发布/重定向/获取模式,我想解决这个问题。
我应该在哪里存储发布的数据(即args
)在发布和获取之间?标准或推荐的方法是什么?我应该设置一个cookie吗?我应该使用flask.session对象,在那里创建一个缓存吗?你能指出我正确的方向吗?大多数时候我都在写后端......
UPDATE:
我正在发布结果代码。
@app.route('/log', methods=['POST'])
def log_post():
form = LogForm()
if form.validate_on_submit():
session['logformdata'] = form.data
return redirect(url_for('log'))
# either flash errors here or display them in the template
return render_template('log.html', form=form)
@app.route('/log', methods=['GET'])
def log():
try:
formdata = session.pop('logformdata')
except KeyError:
return render_template('log.html', form=LogForm())
args = parse(formdata)
log = getlog(args)
return render_template('log.html', form=LogForm(data=formdata), log=log)