[python] Flask-WTF에서 사용자가 입력한 값을 일단 저장하고 나중에 처리하는 방법은 무엇인가요?

Flask-WTF는 Flask 프레임워크와 함께 사용하는 폼 라이브러리로, 사용자로부터 데이터를 입력받는 폼을 생성하고 검증하는 기능을 제공합니다. 사용자가 입력한 값을 일단 저장하고 나중에 처리하기 위해서는 다음과 같은 방법을 사용할 수 있습니다:

  1. 세션(Session)을 사용하기: Flask-WTF에서 사용자 입력값을 폼으로부터 받은 후, 해당 값을 세션에 저장할 수 있습니다. 이렇게 저장한 값을 나중에 처리하기 위해 필요한 경우 세션으로부터 값을 읽어올 수 있습니다.

예를 들어, 사용자로부터 입력받은 값을 세션에 저장하려면 다음과 같이 코드를 작성할 수 있습니다:

from flask import Flask, render_template, session, redirect, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'

class MyForm(FlaskForm):
    name = StringField('Name')
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()
    if form.validate_on_submit():
        session['name'] = form.name.data
        return redirect('/process')  # 처리할 페이지로 리다이렉트
    return render_template('index.html', form=form)

@app.route('/process')
def process():
    name = session.get('name')  # 세션에서 저장한 값 읽어오기
    # 여기서 name 값을 처리하는 로직을 작성하면 됩니다.
    return f"Hello, {name}!"

이 예제에서는 사용자로부터 이름을 입력받는 폼을 생성하고, 사용자가 폼을 제출하면 세션에 이름 값을 저장합니다. 다음으로 /process 경로로 리다이렉트하여 저장한 값을 처리하는 로직을 실행합니다.

  1. 데이터베이스를 사용하기: Flask-WTF에서 사용자 입력값을 폼으로부터 받은 후, 데이터베이스에 저장하여 나중에 처리할 수도 있습니다. 데이터베이스는 사용자 입력값을 영구적으로 보관하고, 필요한 경우 저장한 값을 조회하고 처리할 수 있습니다. 이를 위해서는 Flask에 적합한 데이터베이스 라이브러리를 선택하고, 데이터베이스와의 연동 설정 및 쿼리 처리 등을 구현해야 합니다.

둘 중에 어떤 방법을 선택할지는 프로젝트의 요구사항과 복잡도에 따라 다를 수 있습니다. 세션을 사용하는 방법은 간단하고 실시간 처리에 유용하며, 데이터베이스를 사용하는 방법은 데이터를 영구적으로 보관하고 복잡한 처리를 할 수 있는 장점이 있습니다.