[Django] C.R.U.D (1)

juri·2021년 7월 16일
0

Django

목록 보기
3/11
post-thumbnail

🍎 Django C.R.U.D (1)

장고 크루드는 크게 두 부분으로 나뉘어서 진행한다. 첫번째 시간에는 모델과 DB 관련된 작업 위주로 배우고 ORM 을 사용하는 연습을 한다. 두번째 시간에는 뷰와 클라언트에서 DB까지 장고가 다루는 작업의 모든 것을 전체적으로 배운다.


🌼 순서

1. 모델링 (Models.py)

tableclass라고 생각하면 쉽다.

class Menu(models.Model) :
    #클래스 속성이 DB테이블의 컬럼이 된다.
    name = models.CharField(max_length=20)
    #테이블 이름 지정
    class meta :
        db_table = 'menu'

2. migration

파이썬으 만든 모델을 데이터베이스에 테이블로 기록하기 위한 변환과정이라고 생각하면 된다.

#Django shell
#(manage.py 파일이 있는 디렉토리에서)
python manage.py makemigrations
python manage.py migrate

🌼 C.R.U.D

C.R.U.D는 ORM을 통해서 Database에 Table을 만들고 데이터를 생성(create), 조회(read), 수정(update), 삭제(delete)하는 것을 뜻한다. 이제부터 CRUD를 하는 대표적인 메소드를 소개한다.

1. Create

(이 아래부터 import 생략)

#1
Menu.objects.create(name='음료')
#2
Menu(name='음료').save()

2. Read

Menu.objects.get(id=1)

3. Upadate

#1
Menu.objects.filter(name='음료').update(name='푸드')
#2
menu = Menu.objects.get(name='음료')
menu.name = '푸드'
menu.save()

4. Delete

Menu.objects.get(id=1).delete()
#반환값 : 삭제개수, 유형별 삭제횟수

🌼 메소드 추가

참고 : 장고 공식 홈페이지 👉 링크

  1. get_or_create()
    해당하는 데이터가 있으면 False와 함께 데이터 반환, 없으면 True반환하고 데이터 새로 생성
Menu.objects.get_or_create(name='음료')
  1. bulk_create()
    객체를 리스트 형태로 받아서 데이터를 새로 생성
a1 = Menu(name='음료')
a2 = Menu(name='푸드')
Menu.objects.bulk_create([a1, a2])
  1. count()
    해당하는 데이터의 갯수 반환
Product.objects.filter(name__contains='라떼').count()
  1. first() , last()
    해당하는 데이터의 맨 처음, 맨 마지막 데이터를 반환
    first() 는 인덱스 0번 ([0]) 을 조회하는 원리
product.objects.filter(name__contains='라떼').first()
product.objects.filter(name__contains='라떼').last()
  1. aggregate()
    각종 수학 계산을 수행
    예 ) sum Avg Max diff
  1. values() , values_list()
    지정한 데이터를 각각 딕셔너리, 튜플 형태로 반환
a = Menu.objects.all()
a.values()
# <QuerySet [{'id:1, 'name' : '음료'}]>
a.values_list()
# <QuerySet [(1, '음료')]>
profile
Make my day !

0개의 댓글

관련 채용 정보