본문 바로가기
프레임워크/Django

[Django] 장고 모델과 폼의 관계

by nahkim 2023. 5. 8.

Django에서 모델(Model)은 데이터베이스의 테이블을 정의하고, 폼(Form)은 사용자가 입력한 데이터를 처리하기 위한 클래스이다. 또한 이 둘은 Django 웹 애플리케이션의 구현에서 핵심적인 역할을 담당한다.

 

 

모델(Model)

데이터베이스에 데이터를 저장하고 조회하기 위해 SQL문 쿼리문을 사용하지 않고 데이터를 쉽게 처리할 수 있는 클래스

 

 

폼(Form)

페이지 요청시 전달되는 파라미터들을 쉽게 관리하기 위해 사용하는 클래스

HTML을 자동으로 생성하거나 폼에 연결된 모델을 이용하여 데이터를 저장하는 기능이 있다.

 

폼(Form)의 종류

  • 일반 폼(forms.Form)
  • 모델 폼(forms.ModelForm)

일반폼

이너 클래스인 Meta 클래스가 반드시 필요하며, Meta 클래스에 사용할 모델과 모델의 속성을 적어야함

즉, 직접 필드를 정의해야한다

 

모델이 바뀌면 폼도 그에 따라 변경해야한다.

 

모델 폼

모델과 연결된 폼

폼을 저장하면 연결된 모델의 데이터를 저장할 수 있음

즉, 지정된 모델로부터 필드 정보를 읽어 자동으로 폼 필드를 생성

 

 

모델과 폼의 관계

모델과 폼은 서로 목적이 다르지만 서로 연관이 있다.

모델에 새로운 데이터를 추가하거나 수정시, 폼을 사용하여 사용자로부터 입력받은 데이터를 검증하고 처리한다.

이 경우 폼 클래스는 모델 클래스와 관련된 필드를 정의하고, 데이터 유효성 검사를 수행하는 등 모델 클래스와 상호작용한다.