Spring의 JPA와 마찬가지로, Django는 기본적으로 CRUD (Create, Read, Update, Delete) 기능을 제공합니다.
이러한 기능은 Django의 모델 및 뷰를 사용하여 쉽게 구현할 수 있습니다.
CRUD기능이란?
1. Create (생성): 모델을 정의하고 이를 기반으로한 폼을 생성하여 새로운 레코드를 데이터베이스에 추가하는 기능, 이를 통해 사용자가 웹 애플리케이션에서 새로운 항목을 만들 수 있습니다.
2. Read (읽기): 데이터베이스에서 정보를 검색하는 기능, 뷰를 통해 이러한 정보를 가져와서 템플릿에 표시할 수 있습니다.
3. Update (수정): 기존 레코드를 업데이트하는 기능, 폼을 사용하여 기존 데이터를 수정하고 데이터베이스에 저장할 수 있습니다.
4. Delete (삭제): 데이터베이스에서 레코드를 삭제하는 기능
▶ 웹 애플리케이션에서는 사용자가 데이터를 생성, 조회, 수정, 삭제할 수 있는 기능이 중요합니다.
따라서 CRUD 기능은 대부분의 데이터 관리 애플리케이션에서 공통적으로 필요한 기능이므로, 이를 이해하고 숙지하는 것이 매우 중요합니다.
각 프레임워크나 라이브러리마다 구현 방법은 조금씩 다를 수 있지만, 기본적인 개념은 동일하기에, 먼저 기본적인 개념을 이해하면, 다양한 프로그래밍 언어나 프레임워크를 사용하는 다양한 프로젝트에서도 CRUD 기능을 구현하는 데 도움이 됩니다.
view파일 내 CRUD 기능 코드 예시
from django.shortcuts import render, redirect
import MySQLdb
from pro13app.models import Sangdata
from django.http.response import HttpResponseRedirect
def MainFunc(request): #메인페이지 렌더링
return render(request, 'main.html')
def ListFunc(request): # 읽기
datas = Sangdata.objects.all()
return render(request, 'list.html', {'datas':datas})
def InsertFunc(request): # insert페이지 렌더링
return render(request, 'insert.html')
def InsertOkFunc(request): # 수정
if request.method == 'POST':
code = request.POST.get("code")
# 새 상품 code 유무 여부 검증후 insert문 진행
try:
Sangdata.objects.get(code=code)
return render(request, 'insert.html', {'msg':'이미 등록된 번호입니다'})
except Exception as e:
#추가 작업
Sangdata(
code=code,
sang=request.POST.get("sang"),
su=request.POST.get("su"),
dan=request.POST.get("dan"),
).save()
return HttpResponseRedirect("/sangpum/list")
def UpdateFunc(request): #수정하고 싶은 상품 정보 읽기
updata =Sangdata.objects.get(code=request.GET.get('code'))
return render(request, 'update.html',{'data':updata})
def UpdateOkFunc(request): # 수정해야하는 자료를 받아와 수정- POST 방식
if request.method=='POST':
upRecode=Sangdata.objects.get(code=request.POST.get("code"))
upRecode.code=request.POST.get("code") #변수가 db있던 자료에 있는 값을 우리가 입력한 값으로 덮어쓰게 만듭니다.
upRecode.sang=request.POST.get("sang")
upRecode.su=request.POST.get("su")
upRecode.dan=request.POST.get("dan")
upRecode.save()
return redirect('/sangpum/list')
def DeleteFunc(request): # 삭제
delRecode=Sangdata.objects.get(code=request.GET.get("code"))
delRecode.delete()
return redirect('/sangpum/list')