[파이썬][Django] 유효성 검사 함수 사용 방법과 예제
Django에서 유효성 검사 함수를 사용하여 사용자 입력을 검증하고 처리하는 방법과 예제를 제공하겠습니다. 유효성 검사 함수를 사용하면 사용자 입력 데이터를 검증하고 오류를 처리할 수 있습니다.
-
폼 클래스 생성
먼저, 유효성 검사 함수를 사용하기 위해 폼 클래스를 정의합니다. Django의
forms
모듈을 사용하여 폼 클래스를 생성합니다. 예를 들어, 간단한 로그인 폼을 만들어보겠습니다.
# myapp/forms.py
from django import forms
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
-
뷰 함수 작성
유효성 검사 함수를 사용하여 폼 데이터를 검증하는 뷰 함수를 작성합니다. 이 함수는 폼 데이터가 POST 요청으로 전송된 경우에 호출됩니다.
# myapp/views.py
from django.shortcuts import render
from myapp.forms import LoginForm
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
# 유효성 검사 통과 시 추가 로직 수행
username = form.cleaned_data['username']
# 로그인 처리 등
else:
# 유효성 검사 실패 시 오류 처리
# 예: 오류 메시지를 포함한 폼 다시 렌더링
return render(request, 'login_template.html', {'form': form})
else:
form = LoginForm()
return render(request, 'login_template.html', {'form': form})
이 함수에서 `is_valid()` 메서드를 사용하여 폼 데이터가 유효한지 확인합니다. 만약 유효하지 않다면 오류가 `form.errors`에 포함되어 있으며, 이를 사용하여 오류 처리를 수행할 수 있습니다.
-
템플릿 작성
로그인 폼을 렌더링하기 위한 템플릿을 작성합니다.
<pre>
<code>
<!-- myapp/templates/login_template.html -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</code>
</pre>
이 템플릿은 로그인 폼을 렌더링하고, 유효성 검사 오류가 발생하면 오류 메시지를 표시합니다.
-
오류 메시지 표시 (선택 사항)
유효성 검사 실패 시 오류 메시지를 폼에 표시하려면 다음과 같이 템플릿에 오류를 표시합니다.
<pre>
<code>
<!-- myapp/templates/login_template.html -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
{% if form.errors %}
<div class="error">
<p>{{ form.errors }}</p>
</div>
{% endif %}
</code>
</pre>
이렇게 하면 폼 유효성 검사 오류 메시지가 표시됩니다.
이제 유효성 검사 함수를 사용하여 Django 폼을 사용자 입력 데이터로부터 검증하고 처리하는 방법을 알았습니다. 이를 통해 사용자로부터 안전하고 정확한 데이터를 수집하고 처리할 수 있습니다.