파이썬 장고 폼(Form) 기초: 사용자 입력 처리하기
웹 개발에서 사용자로부터 입력을 받는 것은 매우 중요합니다. 장고는 폼 처리를 위한 강력한 시스템을 제공합니다. 이 글에서는 장고 폼의 기본 사용법과 사용자 입력을 처리하는 방법에 대해 알아보겠습니다.
장고 폼의 개념
장고 폼은 웹 폼의 생성, 검증, 그리고 처리를 간단하게 만들어 줍니다. 폼은 사용자로부터 정보를 수집하는데 사용되며, 장고는 이를 위해 forms
모듈을 제공합니다.
폼 클래스 정의하기
폼을 사용하기 위해서는 먼저 폼 클래스를 정의해야 합니다. 이 클래스는 forms.ModelForm
또는 forms.Form
을 상속받아 생성할 수 있습니다.
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(label='Your name', max_length=100)
message = forms.CharField(widget=forms.Textarea)
폼을 뷰와 템플릿에 사용하기
폼 클래스를 정의한 후, 뷰에서 해당 폼을 인스턴스화하고 템플릿에 전달하여 사용자로부터 입력을 받을 수 있습니다.
from django.shortcuts import render
from .forms import ContactForm
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# 폼 데이터 처리
return HttpResponseRedirect('/thanks/')
else:
form = ContactForm()
return render(request, 'contact.html', {'form': form})
템플릿에서 폼 렌더링하기
템플릿에서는 {{ form }}
을 사용하여 폼을 렌더링할 수 있습니다. 장고는 폼 필드를 HTML로 자동 변환해줍니다.
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
폼 데이터 검증하기
장고 폼은 is_valid()
메소드를 사용하여 데이터의 유효성을 검증합니다. 이 메소드는 폼의 각 필드에 정의된 규칙을 기반으로 데이터를 검증하고, 모든 데이터가 유효한 경우 True
를 반환합니다.
결론
장고 폼은 사용자 입력을 처리하는 강력하고 유연한 방법을 제공합니다. 폼 클래스를 정의하고, 뷰에서 폼 인스턴스를 생성하여 템플릿에 전달하는 과정을 통해, 사용자로부터 안전하고 효율적으로 데이터를 수집할 수 있습니다. 폼의 자동화된 검증 시스템은 개발자가 보다 안전한 웹 애플리케이션을 빠르게 개발할 수 있도록 돕습니다.
더 많은 정보와 고급 기능을 원하신다면, 장고 공식 문서의 폼 섹션을 참조하세요.
관련 이전 게시글
- 장고 템플릿에서 주석 처리하기: 한 줄 주석과 여러 줄 주석 사용법
- 파이썬 장고 템플릿 태그: for, if, csrf_token, url, with, load 활용하기
- 파이썬 장고 템플릿 필터: 데이터 포맷팅하는 방법
- 파이썬 장고 모델(ORM): 데이터 조회, 저장, 수정 및 삭제 방법
- 파이썬 장고 웹 앱 만들기: 주소(URL)와 화면(뷰) 연결하는 방법
이 글이 도움이 되셨다면 공유 부탁 드립니다.