[python] Flask-WTF에서 동적으로 생성된 폼 필드의 값을 어떻게 처리할 수 있나요?

동적으로 생성된 폼 필드는 사용자로부터 입력을 받는 데 사용되며, 많은 양의 데이터를 처리할 때 유용합니다. Flask-WTF는 이러한 동적 폼 필드를 쉽게 처리할 수 있는 기능을 제공합니다.

먼저, 동적으로 생성된 폼 필드의 값을 처리하기 위해 FormFieldFieldList를 사용하는 것이 좋습니다. FormField는 하위 폼 필드를 나타내는 클래스이고, FieldList는 하위 폼 필드의 목록을 나타내는 클래스입니다.

다음은 Flask-WTF를 사용하여 동적으로 생성된 폼 필드의 값을 처리하는 예제 코드입니다.

from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField, FormField, FieldList, SubmitField

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

class DynamicFieldForm(FlaskForm):
    name = StringField('Name')
    age = StringField('Age')

class MainForm(FlaskForm):
    dynamic_fields = FieldList(FormField(DynamicFieldForm), min_entries=1)
    submit = SubmitField('Submit')

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

    if form.validate_on_submit():
        for dynamic_field in form.dynamic_fields:
            print(dynamic_field.name.data)
            print(dynamic_field.age.data)

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

if __name__ == '__main__':
    app.run()

위의 예제에서는 MainFormDynamicFieldForm의 두 가지 폼 클래스를 정의합니다. DynamicFieldForm은 동적으로 생성된 폼 필드를 나타내는 하위 폼 클래스이고, MainForm은 동적인 폼 필드를 포함하는 메인 폼 클래스입니다.

MainForm에서는 dynamic_fields라는 FieldList를 사용하여 동적인 폼 필드를 표현합니다. dynamic_fields에는 DynamicFieldForm의 인스턴스를 FormField로 감싼 후, min_entries를 사용하여 최소한 하나의 동적 필드를 생성하도록 설정합니다.

index 뷰 함수에서는 MainForm 인스턴스를 생성하고, 입력이 유효한 경우에는 동적으로 생성된 폼 필드의 값을 처리합니다. 이 예제에서는 각 동적 필드의 nameage 값을 출력하도록 설정되어 있습니다.

위의 예제 코드를 참조하여 Flask-WTF에서 동적으로 생성된 폼 필드의 값을 처리하는 기능을 구현할 수 있습니다. Flask-WTF는 유연한 폼 처리 기능을 제공하므로, 동적인 폼 필드를 사용하는 경우에도 간편하게 처리할 수 있습니다.

이 문제에 관한 더 자세한 정보는 Flask-WTF 공식 문서를 확인해주세요.