Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 멋사 10기
- 멋쟁이사자처럼 서류
- django
- 멋사 서류평가
- 멋쟁이사자처럼10기
- 멋사11기
- 멋사10기
- 코딩동아리
- 백엔드
- 멋사
- 멋쟁이사자처럼대학
- 파이썬
- 멋쟁이사자처럼11기
- API
- 멋사 합격
- 파이썬 크롤링
- ㅏㄴ
- 기사 제목 크롤링
- 깃허브
- discord
- 알림봇
- 멋쟁이사자처럼
- 디스코드봇
- 멋사 면접
- 멋쟁이 사자처럼
- 멋사12
- 웹동아리
- IT동아리
- 멋사 서류
- 크롤링
Archives
- Today
- Total
ACHO.pk devlog
[Django] 데이터베이스(ORM) + 레코드(데이터) 다루기 본문
ORM : 함수나 메서드를 이용해서 SQL문이 실행될 수 있도록 함
Django | Database | |
Model | = | Table |
instance | = | record |
SQL은 기본적으로 Table 단위로 쿼리하기 때문에 Django에서도 Model 클래스 단위로 쿼리한다.
※ 수행 전에 admin 계정과 migrate 해야함
(ex: 애플리케이션 이름 = pantsapp, 데이터베이스 이름 = Pants)
·models.py 에 테이블 클래스 정의
class Pants(models.Model):
p_name = models.CharField(max_length=200)
p_price = models.IntegerField(default = 0)
p_size = models.CharField(max_length = 10)
def __str__(self):
return self.p_name
# 외부에서 이 클래스에 접근할 때 테이블의 이름을 반환하여 어떤 테이블인지 쉽게 알아봄
Pants table |
|||
id(PK) | p_name | p_price | p_size |
·admin.py 에 Pants 등록
from django.contrib import admin
from pantsapp.models import Pants
admin.site.register(Pants)
레코드 다루기
·레코드 읽기(read) - 필드 데이터 검색
python manage.py shell
from pantsapp.models improt Pants
p = Pants(p_name='flowerpants', p_price = '25000', p_size = 'M')
p.save()
all() 메서드를 통해 모든 데이터 가져옴
# 모든 데이터 가져와 출력
p = Pants.objects.all()
p[0]
>> <pants: flowerpants>
p[0].p_size
>> 'M'
# 'floswerpants' 의 이름을 가진 바지의 데이터를 가져와 출력
p = Pants.objects.get(p_name='flowerpants')
p
>> <pants: flowerpants>
p.p_size
>> 'M'
·레코드 읽기(read) - 데이터 필터
# p_price가 20000보다 작은 데이터
p = Pants.objects.filter(p_price__lt==20000)
# p_price가 20000보다 큰 데이터
p = Pants.objects.filter(p_price__gt==20000)
# p_price가 20000보다 작거나 같은 데이터
p = Pants.objects.filter(p_price__lte==20000)
# p_price가 20000보다 크거나 같은 데이터
p = Pants.objects.filter(p_price__gte==20000)
이외에도
__isnull | ~ null인 자료 검색 |
__contains | 특정 문자열을 포함하는 자료 검색 |
__startwith | 특정 문자열로 시작하는 자료 검색 |
__endwith | 특정 문자열로 끝나는 자료 검색 |
·레코드 읽기(read) - 데이터 필터
# p_price을 기준으로 오름차순
p = Pants.objects.order_by('s_price')
# p_price을 기준으로 내림차순
p = Pants.objects.order_by('-s_price')
·레코드 업데이트(update) - 데이터 수정
p.s_price = '20000'
·레코드 삭제(delete) - 데이터 삭제
p.delete()
'프레임워크 > Django' 카테고리의 다른 글
[Django] MVT/MVC 패턴과 django framework flow (0) | 2022.12.27 |
---|---|
[Django] HTTP (0) | 2022.12.27 |
Comments