[파이썬][Django] 유효성 검사 함수 사용 방법과 예제

Django에서 유효성 검사 함수를 사용하여 사용자 입력을 검증하고 처리하는 방법과 예제를 제공하겠습니다. 유효성 검사 함수를 사용하면 사용자 입력 데이터를 검증하고 오류를 처리할 수 있습니다.

  1. 폼 클래스 생성

    먼저, 유효성 검사 함수를 사용하기 위해 폼 클래스를 정의합니다. Django의 forms 모듈을 사용하여 폼 클래스를 생성합니다. 예를 들어, 간단한 로그인 폼을 만들어보겠습니다.

# myapp/forms.py
    
    from django import forms
    
    class LoginForm(forms.Form):
        username = forms.CharField()
        password = forms.CharField(widget=forms.PasswordInput)
  1. 뷰 함수 작성

    유효성 검사 함수를 사용하여 폼 데이터를 검증하는 뷰 함수를 작성합니다. 이 함수는 폼 데이터가 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`에 포함되어 있으며, 이를 사용하여 오류 처리를 수행할 수 있습니다.
  1. 템플릿 작성

    로그인 폼을 렌더링하기 위한 템플릿을 작성합니다.

<pre>
<code>

<!-- myapp/templates/login_template.html -->
    
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Login</button>
    </form>

</code>
</pre>
이 템플릿은 로그인 폼을 렌더링하고, 유효성 검사 오류가 발생하면 오류 메시지를 표시합니다.
  1. 오류 메시지 표시 (선택 사항)

    유효성 검사 실패 시 오류 메시지를 폼에 표시하려면 다음과 같이 템플릿에 오류를 표시합니다.

<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 폼을 사용자 입력 데이터로부터 검증하고 처리하는 방법을 알았습니다. 이를 통해 사용자로부터 안전하고 정확한 데이터를 수집하고 처리할 수 있습니다.