Django API (1)

dhhyy·2021년 4월 11일
0

Django

목록 보기
3/4

Django

간단하게 이해하면, 웹 사이트에 필요한 기능별로 모듈화된 단위 프로그램이 실행되며 사용자가 요청한 정보를 데이터베이스에서 꺼내 사용자에게 전달하는 Web Framework

또한 data를 생성, 조회, 수정, 삭제할 수 있고 이를 가르켜 CRUD라고 부름

데이터베이스의 저장 방식

Django - ORM -> 객체와 관계형 데이터베이스를 연결하는 기능

서로 다른 언어로 구성되어 있는 데이터베이스를 연결시켜 주는 것

관계형데이터베이스 형태로 저장, 객체 형태로 사용하 수 있도록 한다

데이터 베이스 실습하면서 사진 찍어서 설명! 

Django QuerySet API

일반적으로 자주 사용되는 model method를 통해 데이터베이스를 관리할 수 있음

QuerySet으로 반환되는 경우와 그렇지 않은 경우

사용할 수 있는 명령어가 달라지기 때문에 어떤 자료형으로 반환이 되는지 잘 알아봐야함

>>> User.objects.get(name='정준하')
<User: User object (39)>

get 명령어를 사용하면 object로 변환

>>> User.objects.filter(name='정준하')
<QuerySet [<User: User object (39)>]>

filter 명령어를 사용하면 QuerySet으로 변환, QuerySet = 리스트

QuerySet으로 반환되지 않는 경우

create

테이블에 데이터를 추가해주는 method / 생성된 인스턴스를 반환

>>> create1 = User.objects.create(name='엄태구')
>>> create1
<User: User object (43)>

get

지정된 조회 매개 변수와 일치하는 인스턴스를 반환합니다.이 매개 변수는 필드 조회에 설명 된 형식이어야 함

update

지정된 필드에 대해 업데이트를 수행하고, 수행된 행 수를 반환. delete 메서도도 사용법은 비슷

>>> User.objects.filter(name='엄태구').update(name='원진아')
1
>>> updata1 = User.objects.get(name='원진아')
>>> updata1
<User: User object (43)>

save

save의 사용법. 데이터베이스에도 적용.

>>> user = User.objects.get(id=43)
>>> user.name
'원진아'
>>> user.name = '한효주'
>>> user.name
'한효주'
>>> user.save()
>>> user.name
'한효주'

exists

그 값이 있는지 없는지, True or False로 반환

>>> User.objects.filter(name='한효주').exists()
True

first

QuerySet 결과 중 가장 첫 번째 결과 값을 반환

행과 열에 대한 이해가... 더 있어야 할 거 같음

>>> User.objects.first()
<User: User object (4)>
>>> User.objects.first().name
'동헌'

QuerySet으로 반환되는 경우

values, values_list

QuerySet 전체를 딕셔너리 형태로 반환 / values_list는 value만 반환!

>>> User.objects.values()
<QuerySet [{'id': 4, 'email': 'asdasd@gmail.com', 'name': '동헌', 'phoneNumber': '01033333010', 'password': '12341234'}, {'id': 5, 'email': 'vvddqq@gmail.com', 'name': '준호', 'phoneNumber': '01039302934', 'password': '123456'}, {'id': 6, 'email': 'vvddq@gmail.com', 'name': '지운', 'phoneNumber': '01148480404', 'password': '909090'}, {'id': 7, 'email': 'vndjve@yahoo.com', 'name': '미카엘', 'phoneNumber': '01049494939', 'password': '05050505'}, {'id': 8, 'email': 'darknight@yahoo.com', 'name': '베일', 'phoneNumber': '01093938484', 'password': '0401201'}, {'id': 9, 'email': 'worf@yahoo.com', 'name': '매튜', 'phoneNumber': '01093938484', 'password': '0401040'}, {'id': 10, 'email': 'worf@wecode.com', 'name': '크리스', 'phoneNumber': '01094940192', 'password': '00000000'}, {'id': 11, 'email': '123890@vrnv.com', 'name': '샘', 'phoneNumber': '01748494049', 'password': '0909098'}

참고사이트

https://velog.io/@inyong_pang/Django-ORMObject-Relationship-Mapping

profile
지뢰찾기 개발자

0개의 댓글