-
필드 선언: 폼에서 사용할 필드를 선언해야 합니다. 대표적인 필드로는 텍스트 필드, 비밀번호 필드, 체크박스 필드 등이 있습니다. 필드를 선언할 때는
FormField
클래스를 사용합니다. -
유효성 검사: 폼에 입력된 데이터의 유효성을 검사해야 합니다. Flask-WTF에서는
validators
모듈을 사용하여 다양한 유효성 검사 기능을 제공합니다. 예를 들어, 이메일 주소 형식 검사, 필드가 비어있는지 확인하는 검사 등을 할 수 있습니다. -
CSRF 보호: 크로스 사이트 요청 위조(CSRF)를 방지하기 위해 폼에 CSRF 토큰을 포함해야 합니다. Flask-WTF에서는 기본적으로 CSRF 토큰을 생성하고 검증하는 기능을 제공합니다.
-
렌더링: Flask-WTF를 사용하여 생성한 폼을 HTML로 렌더링해야 합니다. 이를 위해 Flask의 템플릿 엔진을 사용하거나 직접 HTML 코드를 작성할 수 있습니다.
아래는 Flask-WTF를 사용하여 간단한 폼을 생성하는 예시 코드입니다:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField
from wtforms.validators import DataRequired, Email
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
remember_me = BooleanField('Remember Me')
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
# 로그인 처리 로직 작성
return 'Logged in successfully'
return render_template('login.html', form=form)
if __name__ == '__main__':
app.run()
위 코드는 Flask-WTF를 사용하여 로그인 폼을 생성하는 예시입니다. LoginForm
클래스를 생성하고 각 필드를 선언하면서 필수적인 요소들을 포함시켰습니다. 이후 login
뷰 함수에서 폼을 렌더링하고 유효성 검사를 수행합니다. 폼이 제출될 때는 form.validate_on_submit()
메서드가 호출되며, 이 때 유효성 검사가 수행됩니다.
Flask-WTF를 사용하면 간단하게 폼을 생성하고 유효성 검사를 수행할 수 있으며, 보안 측면에서도 CSRF 보호를 자동으로 제공합니다. 자세한 내용은 Flask-WTF 공식 문서를 참고하시기 바랍니다.
참고 문서:
- Flask-WTF 공식 문서: https://flask-wtf.readthedocs.io/
- WTForms 공식 문서: https://wtforms.readthedocs.io/