[파이썬][Django] Django 폼 작성과 사용 방법과 예제
Django에서 폼을 작성하고 사용하는 방법을 설명하겠습니다. Django의 폼은 웹 애플리케이션에서 사용자로부터 데이터를 수집하고 처리하는 데 유용합니다.
폼 작성
-
폼 클래스 생성:
Django에서는 폼을 모델과 비슷한 클래스로 정의합니다. 폼 클래스는
forms.Form
을 상속합니다. 필드는 폼 클래스 내에서 정의되며, 각 필드는 사용자로부터 입력을 받을 데이터 유형을 정의합니다.
from django import forms
class MyForm(forms.Form):
name = forms.CharField(label='이름', max_length=100)
email = forms.EmailField(label='이메일')
age = forms.IntegerField(label='나이')
-
폼 필드 유효성 검사:
Django는 폼 필드의 유효성을 자동으로 검사하므로 정의된 필드 유형에 따라 사용자 입력을 유효성 검사합니다. 예를 들어,
CharField
는 최대 길이를 초과하지 않는지 확인하고,EmailField
는 이메일 형식을 검사합니다.
폼 사용
-
폼 인스턴스 생성:
폼 클래스를 기반으로 폼 인스턴스를 생성합니다.
form = MyForm()
-
폼 템플릿 렌더링:
폼을 HTML 템플릿에 렌더링하여 웹 페이지에 표시합니다.
<pre>
<code>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">제출</button>
</form>
</code>
</pre>
`{{ form.as_p }}`는 각 필드를 단락(`<p>`) 형식으로 렌더링합니다. 다른 렌더링 형식도 사용 가능합니다.
-
폼 데이터 처리:
사용자가 데이터를 입력하고 제출하면, 폼 데이터를 처리합니다.
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 폼 데이터 유효성 검사 통과
name = form.cleaned_data['name']
email = form.cleaned_data['email']
age = form.cleaned_data['age']
# 데이터 처리
else:
# 폼 데이터 유효성 검사 실패
else:
form = MyForm()
`is_valid()` 메서드는 폼 데이터의 유효성을 검사하고, `cleaned_data` 속성을 통해 정제된 데이터를 얻을 수 있습니다.
예제
간단한 폼 예제를 살펴보겠습니다. 이 폼은 이름, 이메일 및 나이를 입력 받습니다.
from django import forms
class MyForm(forms.Form):
name = forms.CharField(label='이름', max_length=100)
email = forms.EmailField(label='이메일')
age = forms.IntegerField(label='나이')
이 폼을 템플릿에 렌더링하고, 제출된 데이터를 처리할 수 있습니다.
<pre>
<code>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">제출</button>
</form>
</code>
</pre>
폼을 사용하면 웹 애플리케이션에서 사용자 입력을 쉽게 수집하고 처리할 수 있으며, 입력 데이터의 유효성 검사 및 처리를 Django에게 맡길 수 있습니다.