[python] Flask-WTF에서 사용자에게 오류 메시지를 보여주는 방법은 무엇인가요?
Flask-WTF는 Flask와 함께 사용되는 WTForms를 위한 확장 모듈입니다. Flask-WTF를 사용하면 사용자에게 오류 메시지를 간편하게 표시할 수 있습니다.
- 먼저, 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')
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()
- 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를 사용하면 사용자에게 오류 메시지를 보여주는 것이 간단하고 편리해집니다.
참고 자료: