[python] 폼 처리와 유효성 검사

이 블로그 포스트에서는 파이썬(Flask) 웹 프레임워크를 사용하여 웹 애플리케이션에서 폼 처리와 유효성 검사를 다룹니다. 이 포스트를 통해 폼을 만들고 제출하는 방법, 유효성을 검사하는 방법, 그리고 폼으로부터 데이터를 가져오고 처리하는 방법을 배울 수 있습니다.

  1. 폼 만들기: 폼을 만들어 사용자로부터 데이터를 입력 받는 방법
  2. 유효성 검사: 사용자 입력 데이터의 유효성을 검사하는 방법
  3. 데이터 처리: 폼으로부터 데이터를 가져와 처리하는 방법

그럼 파이썬을 사용하여 폼 처리와 유효성 검사를 어떻게 하는지 자세히 알아보겠습니다.

1. 폼 만들기

첫번째로, 우리는 폼을 만들어야 합니다. Flask-WTFWTForms 라이브러리를 사용하여 쉽게 폼을 만들 수 있습니다.

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

class MyForm(FlaskForm):
    name = StringField('이름', validators=[DataRequired()])
    email = StringField('이메일', validators=[DataRequired()])
    submit = SubmitField('제출')

위의 코드는 간단한 폼을 만드는 방법을 보여줍니다. FlaskForm을 상속받는 클래스를 생성하고, 각 필드를 정의하고 유효성 검사를 적용할 수 있습니다.

2. 유효성 검사

다음으로, 유효성 검사를 살펴보겠습니다. WTForms는 다양한 내장 유효성 검사자(Validators)를 제공합니다. 예를 들어, DataRequired를 사용하여 필드가 비어있지 않은지 확인할 수 있습니다.

from wtforms.validators import Email

class MyForm(FlaskForm):
    name = StringField('이름', validators=[DataRequired()])
    email = StringField('이메일', validators=[DataRequired(), Email()])
    submit = SubmitField('제출')

위의 코드에서는 Email 유효성 검사자를 추가하여 이메일 형식의 입력값을 확인합니다.

3. 데이터 처리

마지막으로, 우리는 폼 제출 후 입력된 데이터를 처리해야 합니다. 이 작업은 간단하게 구현할 수 있습니다.

from flask import request

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    form = MyForm()
    if form.validate_on_submit():
        name = form.name.data
        email = form.email.data
        # 데이터 처리 로직
        return '제출 완료'
    return '유효성 검사 실패'

submit 뷰 함수에서는 먼저 폼 인스턴스를 생성하고, validate_on_submit 메서드로 유효성을 검사합니다. 유효한 입력일 경우, 데이터를 가져와 처리할 수 있습니다.

이렇게해서 우리는 파이썬 Flask 웹 애플리케이션에서 폼 처리와 유효성 검사를 다루는 법을 배워보았습니다. 유용한 라이브러리를 사용하여 간단하고 안전한 폼 처리를 구현할 수 있습니다.

참고 문헌: