[python] Flask-WTF에서 폼을 검증하기 전에 전처리를 수행하는 방법은 어떻게 되나요?
아래는 사용 예시입니다:
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'
class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
# 전처리를 수행하는 함수
def preprocess_data(form):
# 폼 데이터들을 전처리하는 로직을 작성합니다.
form.name.data = form.name.data.upper() # 이름을 대문자로 변환합니다.
# 폼이 제출되고 유효성 검사 전에 실행됩니다.
if form.validate_on_submit():
preprocess_data(form)
# 폼 데이터를 처리하는 로직을 작성합니다.
return 'Form validation passed!'
return render_template('index.html', form=form)
if __name__ == '__main__':
app.run()
위의 예시에서는 MyForm
이라는 폼 클래스를 정의합니다. preprocess_data()
라는 전처리 함수를 작성하여 폼 데이터를 수정할 수 있습니다. 이전처리 함수에서는 form.name.data
를 대문자로 변환하는 예시가 포함되어 있습니다.
index()
함수에서는 폼이 제출될 때 유효성 검사 전에 preprocess_data()
함수를 실행합니다. 이렇게 하면 전처리된 데이터를 사용하여 폼 데이터를 처리할 수 있습니다.
물론 실제로는 전처리 함수에서 더 복잡한 로직을 사용할 수 있으며, 여러 개의 필드들을 처리할 수도 있습니다. 이 예시는 전처리 기능을 이해하기 위한 간단한 예시입니다.
더 자세한 정보는 Flask-WTF 문서를 참고하세요.