[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에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.
- Flask-WTF 공식 문서: https://flask-wtf.readthedocs.io/
- WTForms 공식 문서: https://wtforms.readthedocs.io/