코딩/Django

장고에서 form 과 model 은 어떻게 다른가

김은수2 2023. 4. 7. 20:41

Django 에서 Form 과 Model은 서로 다른 개념이다. 

 

model 의 경우 데이터베이스의 테이브로가 1대 1로 대응되는 클래스이다.

모델은 데이터를 검색하기 위해 사용된다. 

 

form은 사용자 입력을 처리하고, 이를 적절한 형식으로 변환한 후, 저장하거나 화면에 보여주기 위해 사용된다. 

 

Django에서 Form은 HTML의 Form 과 유사하게 작동되며, 사용자로부터 데이터를 입력받는 기능을 수행한다. 

Form을 사용하면 사용자 입력 데이터의 유효성 검사를 쉽게 수행할 수 있다. 

 

Django에서 Form을 사용하는 방법은 다음과 같다. 

 

1. forms.py 에 Form 클래스 정의

from django import forms

class MyForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()

2. 뷰 함수에서 Form 객체를 생성, request 객체와 함께 사용한다. 

 

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # 사용자 입력 데이터 처리
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            # ...
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

 

3, 템플릿에서 Form 객체를 렌더링하여 사용자에게 보여준다. 

 

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Submit</button>
</form>

 

Form 에서도 model에서와 같이 CharField, EmailFeild, IntergerField 등 다양한 필드타입을 제공하며,

커스텀 필드를 직접 만들어 사용할 수도 있다. 

'코딩 > Django' 카테고리의 다른 글

장고 프레임워크에 대한 고찰  (1) 2023.04.17
Django 모델 설계  (0) 2023.04.12
장고 프로젝트 해설, feat 포스트맨  (1) 2023.04.10
장고 2 주차  (0) 2023.04.04
4.03 장고  (0) 2023.04.03