0
내 장난감 응용 프로그램의보기 설정이 있었다 :포스트/리디렉션/플라스크에 패턴을 얻기
@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
을 다른 요청간에 더 이상 사용할 수없는 이유는 무엇입니까?
첫 번째 버전에서 제출 버튼을 누르면 "이전"요청이 다시 전송된다는 것을 의미합니까? –
현재 요청이 완료되고 응답을 보냅니다. 그러나 리디렉션은 브라우저에 새 페이지를 요청하는 명령으로, 새 요청과 처리기의 새 호출을 의미합니다. –
첫 번째 버전에서는 사용자가 제출 버튼을 클릭 할 때마다 "완전히 새로운 요청"이 전송되지 않습니까? 즉, 첫 번째 버전에서'index' 핸들러가 실제로 한 번만 호출된다는 것을 의미합니까? –