Flask는 웹 애플리케이션을 빠르게 개발할 수 있는 경량 프레임워크입니다. Flask를 사용하면 폼 데이터를 쉽게 처리할 수 있습니다. 이번 블로그에서는 Flask 애플리케이션에서 폼을 만들고 제출하는 방법을 다루겠습니다.
폼 생성하기
Flask에서는 Werkzeug라는 라이브러리를 사용하여 폼을 다룹니다. 폼을 생성하려면 먼저 FlaskForm
클래스를 상속받아 새로운 폼 클래스를 만들어야 합니다.
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('제출')
위 예제에서 MyForm
클래스는 이름과 이메일 속성을 가지고 있으며, 이름과 이메일 필드에 대한 유효성 검사를 하도록 설정되어 있습니다.
폼 렌더링하기
폼을 HTML로 렌더링하려면 애플리케이션 템플릿에서 폼을 불러와야 합니다. 예를 들어, 아래와 같이 템플릿 파일을 작성할 수 있습니다.
<form method="POST" action="{{ url_for('submit_form') }}">
{{ form.hidden_tag() }}
<p>{{ form.name.label }} - {{ form.name(size=32) }}</p>
<p>{{ form.email.label }} - {{ form.email(size=32) }}</p>
<p>{{ form.submit() }}</p>
</form>
위 템플릿에서 form.hidden_tag()
는 CSRF 토큰을 생성하기 위한 코드이며, 이를 사용하여 보안 문제를 방지할 수 있습니다.
폼 제출 처리하기
폼을 제출하는 것은 웹 애플리케이션의 백엔드 로직으로 데이터를 저장하거나 처리하는 것을 의미합니다. 아래는 폼을 제출하는 뷰 함수의 예시입니다.
from flask import render_template, redirect, url_for
@app.route('/submit', methods=['GET', 'POST'])
def submit_form():
form = MyForm()
if form.validate_on_submit():
# 폼 데이터를 처리하는 코드
return redirect(url_for('success'))
return render_template('form.html', form=form)
위 코드에서 form.validate_on_submit()
는 제출된 폼의 데이터가 유효한지를 검사하며, 데이터가 유효하다면 폼 데이터를 처리하고 성공 페이지로 리다이렉트 합니다.
결론
Flask를 사용하면 간단히 폼 데이터를 처리할 수 있습니다. 이를 통해 사용자로부터의 입력을 받고 처리하는 웹 애플리케이션을 쉽게 개발할 수 있습니다. Flask 폼 처리 기능을 사용하여 웹 애플리케이션을 보다 유연하고 사용자 친화적으로 만들어보세요.
참고: Flask 공식 문서