Post/Redirect/Get 烧瓶中的图案
Post/Redirect/Get pattern in flask
我的玩具应用程序的视图功能是:
@app.route('/', methods=['GET', 'POST'])
def index():
name = None
form = NameForm()
if form.validate_on_submit():
name = form.name.data
form.name.data = ''
return render_template('index.html', form=form, name=name)
当我使用 PRG 时它看起来像这样:
@app.route('/', methods=['GET', 'POST'])
def index():
form = NameForm()
if form.validate_on_submit():
session['name'] = form.name.data
return redirect(url_for('index'))
return render_template('index.html', form=form, name=session.get('name'))
如您所见,form.name.data = ''
行在第一个版本中用于清除输入字段,但在第二个版本中不需要。我以为 Flask-WTF 会自动将 StringField
中的文本传递到新的 form
实例中,但由于某些原因,它没有。
我的问题是:当我使用 PRG 时,为什么 form.name.data
在不同的请求之间不再可用?
它不能在重定向上传递任何内容,因为它是一个全新的请求。
我的玩具应用程序的视图功能是:
@app.route('/', methods=['GET', 'POST'])
def index():
name = None
form = NameForm()
if form.validate_on_submit():
name = form.name.data
form.name.data = ''
return render_template('index.html', form=form, name=name)
当我使用 PRG 时它看起来像这样:
@app.route('/', methods=['GET', 'POST'])
def index():
form = NameForm()
if form.validate_on_submit():
session['name'] = form.name.data
return redirect(url_for('index'))
return render_template('index.html', form=form, name=session.get('name'))
如您所见,form.name.data = ''
行在第一个版本中用于清除输入字段,但在第二个版本中不需要。我以为 Flask-WTF 会自动将 StringField
中的文本传递到新的 form
实例中,但由于某些原因,它没有。
我的问题是:当我使用 PRG 时,为什么 form.name.data
在不同的请求之间不再可用?
它不能在重定向上传递任何内容,因为它是一个全新的请求。