[python] Flask-WTF에서 동적으로 폼 필드를 생성하는 방법은 어떻게 되나요?

Flask-WTF는 Flask와 함께 사용되는 기능 강화형 웹 폼 라이브러리입니다. 이 라이브러리를 사용하여 동적으로 폼 필드를 생성하는 것은 매우 간단합니다. 다음은 Flask-WTF를 사용하여 동적으로 폼 필드를 생성하는 예제입니다.

from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.fields import FieldList
from wtforms.validators import DataRequired

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

class DynamicForm(FlaskForm):
    dynamic_fields = FieldList(StringField('Dynamic Field', validators=[DataRequired()]))
    submit = SubmitField('Submit')

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

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

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

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

위의 예제에서는 Flask-WTF를 사용하여 DynamicForm 클래스를 정의합니다. 이 클래스는 dynamic_fields라는 FieldList 필드를 가지고 있습니다. FieldList는 동적으로 추가할 수 있는 필드 리스트를 나타냅니다. 이 예제에서는 StringField를 사용하여 동적 필드를 생성하고, 빈 동적 필드를 유효성 검사하도록 설정했습니다.

동적 폼을 제출하면 validate_on_submit() 함수를 사용하여 유효성을 검사하고, dynamic_fields.entries를 사용하여 동적 필드의 데이터에 접근할 수 있습니다.

위의 예제 코드를 실행하면 웹 페이지에 동적으로 폼 필드가 생성되고, 폼을 제출하면 콘솔에 동적 필드의 데이터가 출력됩니다.

Flask-WTF에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.