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 |