[python] Flask-WTF에서 사용자가 입력한 값을 세션에 저장하는 방법은 어떻게 되나요?

Flask-WTF에서 사용자가 입력한 값을 세션에 저장하는 방법은 매우 간단합니다.

먼저, Flask-WTF의 FlaskForm을 상속받는 폼 클래스를 만들어야 합니다. 이 폼 클래스에서 사용자가 입력한 값을 세션에 저장하고자 할 때는 session 객체를 사용하면 됩니다.

아래는 Flask-WTF를 사용하여 사용자가 입력한 값을 세션에 저장하는 예제입니다.

from flask import Flask, render_template, redirect, session
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

app = Flask(__name__)
app.secret_key = 'your_secret_key'

class MyForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()

    if form.validate_on_submit():
        # 사용자가 입력한 값을 세션에 저장
        session['name'] = form.name.data
        
        return redirect('/result')

    return render_template('index.html', form=form)

@app.route('/result')
def result():
    # 세션에서 저장된 값을 가져옴
    name = session.get('name')

    return render_template('result.html', name=name)

위 예제에서 MyForm 클래스를 정의하고, 폼에는 name 필드와 submit 버튼이 포함되어 있습니다. 사용자가 폼을 제출하면 index 함수에서 입력값을 세션에 저장하고 /result URL로 리디렉션합니다.

result 함수에서는 세션에서 저장된 값을 가져와서 name 변수에 저장하고, 해당 값을 result.html 템플릿 파일에 전달합니다.

위 코드를 실행하고 브라우저에서 http://localhost:5000을 열어보면 입력 폼이 나타납니다. 이름을 입력하고 제출하면 /result URL로 이동하여 저장된 이름이 표시됩니다.

세션은 Flask-WTF 외에도 Flask의 기본 세션 객체인 session을 사용하여 저장하고 조회할 수 있습니다. 따라서 Flask-WTF 외의 다른 Flask 확장 패키지와도 함께 사용할 수 있습니다.

더 자세한 내용은 Flask와 Flask-WTF의 공식 문서를 참고하시기 바랍니다.