Flask-WTF는 Flask를 위한 강력한 폼 처리 확장 라이브러리입니다. 사용자가 입력한 값에 대한 중복 여부를 확인하기 위해서는 몇 가지 단계를 따라야 합니다.
-
필드 유효성 검사 Flask-WTF는 필드 유효성 검사를 위한 다양한 유효성 검사기(validation)를 제공합니다. 중복 확인을 위해서는
validators
모듈에서 제공하는Optional()
과DataRequired()
외에도 다른 유효성 검사기를 사용해야 합니다. -
중복 확인 기능 추가하기 중복 확인을 위한 코드는 폼 클래스의 메서드나 컨트롤러의 액션 메서드에서 처리할 수 있습니다. 예를 들어, 사용자가 이메일 주소를 입력하는 폼이 있다고 가정해봅시다. 중복된 이메일을 확인하기 위해 데이터베이스에 쿼리를 실행해야 합니다.
from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired, Email from yourapp.models import User class RegistrationForm(FlaskForm): email = StringField('Email', validators=[DataRequired(), Email()]) submit = SubmitField('Register') def validate_email(self, email): user = User.query.filter_by(email=email.data).first() if user: raise ValidationError('이미 등록된 이메일입니다. 다른 이메일을 사용해주세요.')
위의 예제에서는
validate_email
메서드를 사용하여 이메일의 중복 여부를 확인합니다.validate_
프리픽스를 사용하는 특별한 메서드를 정의해야 합니다. 이 메서드는 필드의 이름을 인수로 받아 필드의 유효성 검사를 진행합니다. -
중복 확인 에러 메시지 처리하기 중복된 값을 입력할 경우, 웹 어플리케이션에서 에러 메시지를 표시할 필요가 있습니다. 이를 위해 템플릿 파일에서 에러 메시지를 표시할 수 있도록 설정해야 합니다. 템플릿 파일의 예는 다음과 같습니다.
<form method="post"> {{ form.hidden_tag() }} <div class="form-group"> {{ form.email.label }} {{ form.email() }} {% for error in form.email.errors %} <span class="error">{{ error }}</span> {% endfor %} </div> <div class="form-group"> {{ form.submit() }} </div> </form>
위의 예에서는
form.email.errors
를 사용하여 이메일 필드의 에러 메시지를 표시합니다.
이제 Flask-WTF를 사용하여 사용자의 입력 값에 대한 중복 확인을 구현하는 방법을 알게 되었습니다. 이를 통해 사용자 입력의 유효성을 검사하고 중복된 정보를 방지할 수 있습니다.
참고 문서:
- Flask-WTF: https://flask-wtf.readthedocs.io/en/stable/
- WTForms: https://wtforms.readthedocs.io/en/3.0.x/