[python] Flask-WTF에서 폼 필드에 입력된 값의 형식을 검사하는 방법은 어떻게 되나요?

Flask-WTF는 Flask 프레임워크에서 사용할 수 있는 폼 유효성 검사 도구입니다. Flask-WTF를 사용하여 폼 필드에 입력된 값의 형식을 검사하는 방법은 다음과 같습니다:

  1. 필요한 패키지를 설치합니다:
    pip install flask-wtf
    
  2. Flask-WTF를 import 합니다:
    from flask_wtf import FlaskForm
    from wtforms import StringField, IntegerField
    from wtforms.validators import DataRequired, Length, NumberRange
    
  3. 폼 클래스를 생성합니다:
    class MyForm(FlaskForm):
     name = StringField('Name', validators=[DataRequired(), Length(min=2, max=20)])
     age = IntegerField('Age', validators=[DataRequired(), NumberRange(min=1, max=100)])
    

    위의 코드에서 StringFieldIntegerField는 각각 문자열과 숫자 입력을 받는 필드를 나타냅니다. DataRequired는 필수 입력 필드임을 나타내고, Length는 입력 길이 제한을 설정합니다. NumberRange는 입력 숫자의 범위를 설정합니다.

  4. 라우트에서 폼을 사용합니다:
    @app.route('/form', methods=['GET', 'POST'])
    def form():
     form = MyForm()
     if form.validate_on_submit():
         # 폼이 제출되었을 때 필드 값의 형식이 올바른 경우 실행할 코드
         name = form.name.data
         age = form.age.data
         # 폼 처리 로직을 작성합니다
         return "Form submitted successfully"
     return render_template('form.html', form=form)
    

위의 코드에서 form.validate_on_submit()는 폼이 제출되었을 때 해당 폼 필드의 값이 모두 올바른지 확인합니다. 만약 올바르지 않은 필드가 있다면 에러 메시지가 자동으로 플래싱됩니다.

  1. 폼을 템플릿에 렌더링합니다: ```html
{{ form.hidden_tag() }} {{ form.name.label }} {{ form.name() }}
{{ form.age.label }} {{ form.age() }}

``` 위의 코드에서 form.hidden_tag()는 CSRF 토큰을 포함한 hidden 필드를 생성합니다. form.name.labelform.name()은 각각 이름 필드의 레이블과 입력 필드를 출력합니다.

Flask-WTF를 사용하면 폼 필드 값의 형식을 검사하는 작업을 간단하게 처리할 수 있습니다. 위의 방법을 따라 폼 필드의 유효성을 검사해보세요.