[python] Flask-WTF를 사용하여 사용자 정의 폼을 만드는 방법은 어떻게 되나요?

Flask-WTF는 Flask 기반 웹 애플리케이션에서 간편하게 웹 폼을 만들 수 있게 도와주는 라이브러리입니다. 사용자 정의 폼을 만들기 위해서는 다음의 단계를 따를 수 있습니다.

  1. 필요한 모듈과 클래스를 import합니다:
    from flask_wtf import FlaskForm
    from wtforms import StringField, PasswordField, SubmitField
    from wtforms.validators import DataRequired, Length
    
  2. 사용자 정의 폼 클래스를 만듭니다. FlaskForm을 상속하여 새로운 클래스를 정의합니다:
    class CustomForm(FlaskForm):
     username = StringField('Username', validators=[DataRequired(), Length(min=4, max=20)])
     password = PasswordField('Password', validators=[DataRequired(), Length(min=8)])
     submit = SubmitField('Submit')
    

    위의 예시에서는 username과 password 필드를 정의하고, 각 필드에 대한 유효성 검사를 추가했습니다.

  3. 라우트 함수에서 폼 인스턴스를 생성하여 사용합니다: ```python from flask import Flask, render_template

app = Flask(name) app.config[‘SECRET_KEY’] = ‘your_secret_key’

@app.route(‘/’, methods=[‘GET’, ‘POST’]) def index(): form = CustomForm() if form.validate_on_submit(): # 폼이 제출됐을 때 실행될 코드 작성 return ‘Form submitted successfully!’ return render_template(‘index.html’, form=form)


4. HTML 템플릿 파일에서 폼 필드를 렌더링합니다. 예를 들어, index.html 파일에 다음과 같이 작성할 수 있습니다:
```html

<form method="POST">
    {{ form.hidden_tag() }}
    {{ form.username.label }} {{ form.username(size=20) }}<br><br>
    {{ form.password.label }} {{ form.password(size=20) }}<br><br>
    {{ form.submit() }}
</form>

위의 예시에서는 폼 필드와 해당 라벨을 렌더링하고, hidden_tag() 함수를 사용하여 CSRF 토큰을 포함시킵니다.

위의 단계를 따라 Flask-WTF를 사용하여 사용자 정의 폼을 만들고, 웹 애플리케이션에 통합할 수 있습니다. Flask-WTF는 다양한 유효성 검사 및 폼 필드 옵션을 제공하여 웹 폼 개발을 좀 더 편리하게 만들어 줍니다. 자세한 내용은 공식 문서를 참고하시기 바랍니다.