[python] Flask-WTF에서 사용자에게 오류 메시지를 보여주는 방법은 무엇인가요?

Flask-WTF는 Flask와 함께 사용되는 WTForms를 위한 확장 모듈입니다. Flask-WTF를 사용하면 사용자에게 오류 메시지를 간편하게 표시할 수 있습니다.

  1. 먼저, Flask-WTF의 FlaskForm을 상속하는 폼 클래스를 생성합니다.
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

class MyForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    submit = SubmitField('Submit')
  1. FlaskForm 클래스를 상속한 폼 클래스를 라우트 함수에서 인스턴스화하여 사용합니다.
from flask import Flask, render_template, request
from flask_wtf import FlaskForm

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

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()
    if form.validate_on_submit():
        # 폼이 성공적으로 제출되었을 때의 처리 로직
        return 'Form submitted successfully!'
    return render_template('index.html', form=form)

if __name__ == '__main__':
    app.run()
  1. HTML 템플릿에서 폼을 렌더링하고 오류 메시지를 표시하는 부분을 추가합니다.

<!DOCTYPE html>
<html>
  <head>
    <title>Flask-WTF Example</title>
  </head>
  <body>
    <h1>Flask-WTF Example</h1>
    <form method="POST" action="/">
      {{ form.csrf_token }}
      {{ form.name.label }} {{ form.name }}
      {% if form.name.errors %}
        <ul>
          {% for error in form.name.errors %}
            <li style="color:red">{{ error }}</li>
          {% endfor %}
        </ul>
      {% endif %}
      {{ form.submit }}
    </form>
  </body>
</html>

위의 예제에서는 DataRequired validator를 사용하여 name 필드가 비어있는 경우 오류를 표시합니다. 해당 필드에 값이 없는 경우, 오류 메시지가 템플릿에 표시됩니다.

이와 같이 Flask-WTF를 사용하면 사용자에게 오류 메시지를 보여주는 것이 간단하고 편리해집니다.

참고 자료: