[파이썬][Django] 폼 처리 함수 사용 방법과 예제
Django에서 폼 데이터를 처리하는 함수를 사용하는 방법과 예제를 제공하겠습니다. 폼 처리 함수를 사용하여 폼 데이터를 저장하거나 다른 작업을 수행할 수 있습니다.
-
폼 클래스 생성
먼저, 폼 데이터를 처리하기 위해 폼 클래스를 정의합니다. 폼 클래스는 Django의
forms
모듈을 사용하여 생성합니다. 예를 들어, 간단한 연락처 폼을 만들어보겠습니다.
# myapp/forms.py
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
-
폼 처리 함수 작성
폼 데이터를 처리하기 위한 함수를 작성합니다. 이 함수는 보통 POST 요청을 처리하며, 폼 데이터가 유효한 경우 추가 작업을 수행합니다. 예를 들어:
# myapp/utils.py
from myapp.forms import ContactForm
def process_contact_form(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# 유효성 검사 통과 시 폼 데이터 처리
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
# 데이터 처리 작업 수행
# 예: 데이터 저장, 이메일 전송 등
else:
# 유효성 검사 실패 시 오류 처리
# 예: 오류 메시지 표시
pass
else:
form = ContactForm()
return form
이 함수에서는 `is_valid()` 메서드를 사용하여 폼 데이터의 유효성을 확인하고, 유효한 경우 데이터 처리 작업을 수행합니다.
-
뷰 함수 작성
폼 처리 함수를 뷰 함수에서 호출하고, 폼 데이터를 처리한 결과를 템플릿에 전달합니다.
# myapp/views.py
from myapp.utils import process_contact_form
from django.shortcuts import render
def contact_view(request):
form = process_contact_form(request)
return render(request, 'contact_template.html', {'form': form})
-
템플릿 작성
폼을 렌더링하기 위한 템플릿을 작성합니다.
<pre>
<code>
<!-- myapp/templates/contact_template.html -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
</code>
</pre>
이 템플릿은 폼을 렌더링하고, 데이터 처리 결과를 표시할 수 있습니다.
-
오류 메시지 표시 (선택 사항)
폼 데이터 처리 중 오류 메시지를 표시하려면 템플릿에 오류 메시지를 추가합니다. 이는 유효성 검사에 실패한 경우에 유용합니다.
<pre>
<code>
<!-- myapp/templates/contact_template.html -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
{% if form.errors %}
<div class="error">
<p>{{ form.errors }}</p>
</div>
{% endif %}
</code>
</pre>
이렇게 하면 폼 유효성 검사 오류 메시지가 표시됩니다.
이제 폼 데이터를 처리하는 함수를 사용하여 Django 애플리케이션에서 사용자 입력 데이터를 저장하거나 처리할 수 있습니다. 이를 통해 사용자로부터 입력된 데이터를 안전하게 다룰 수 있습니다.