Develop/Django

Django DB API 에 대해서

dawonny 2021. 7. 17. 00:26
728x90
반응형

Django에서 Model 을 정의하면 ORM을 통해 데이터 베이스와 소통할 수 있는 API를 제공함.

 

API란?

데이터 베이스를 조작할때 사용했던 모든 명령어들

ex) <model>.objects.all() #<model>의 모든 데이터 Queryset 가져오기

     <model>.objects.get()

 

Queryset 이란?

Django Model 의 데이터가 담겨있는 목록 (파이썬의 리스트와 비슷한 형태)

데이터 베이스로부터 가져온 여러개의 model 데이터

 

Queryset을 반환하는 API

하나의 데이터 객체를 반환하는 API

그 외 API...

 


필드 조건 옵션 (Field Lookups)
Queryset 연산을 할 때 사용할 수 있는 여러 필드 조건 옵션

필드명 뒤에 __을 쓰고 사용할 옵션 인자를 적어주자. (아래 문서 참고)

https://docs.djangoproject.com/en/2.2/ref/models/querysets/#field-lookups

 

QuerySet API reference | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com


https://meetup.toast.com/posts/92

참고

 

REST API 제대로 알고 사용하기 : NHN Cloud Meetup

REST API 제대로 알고 사용하기

meetup.toast.com

REST API란?

Representational State Transfer 의 약자

- 자원(RESOURCE) - URI

- 행위(Verb) - HTTP METHOD

- 표현(Representations)

로 구성

 

 

REST API 디자인 가이드

 

가장 중요한 항목은 두가지로 나눌 수 있다.

1. URI는 정보의 자원을 표현해야한다.

2. 자원에 대한 행위는  HTTP method (GET, POST, PUT, DELETE)로 표현한다

 

예시)
회원정보를 삭제하는 URI
DELETE /members/1
회원정보를 가져오는 URI
GET /members/1
회원정보를 추가할 때
POST /members/2

 

회원 정보를 가져올 때에는 GET

회원 추가시의 행위를 표현 할때에는 POST METHOD를 사용하여 표현합니다.

 

[참고]HTTP METHOD의 알맞은 역할
POST, GET, PUT, DELETE 이 4가지의 Method를 가지고 CRUD를 할 수 있습니다.

METHOD역할

POST POST를 통해 해당 URI를 요청하면 리소스를 생성합니다.
GET GET를 통해 해당 리소스를 조회합니다. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져온다.
PUT PUT를 통해 해당 리소스를 수정합니다.
DELETE DELETE를 통해 리소스를 삭제합니다.

 

URI 설계 할때 주의할 점

 

1. / 는 계층관계를 나타내는데 사용함

2. URI 마지막 문자로  / 를 포함하면 안됨

 

참고)
URI 와 URL의 차이?
URL는 Uniform Resource Locator로 인터넷상 자원의 위치를 의미함(파일의 위치)
URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성
-> URI는 URL을 포함(더 포괄적인 범위)
POST / PUT / PATCH 메소드의 차이?

POST 연산은 결과가 Idempotent 하지 않지만, PUT 은 반복 수행해도 그 결과가 Idempotent 하다.
PUT 요청 시에는 변경되지 않는 데이터도 모두 전송해야 한다.
만약 수정된 값만 보낼 경우, 보내지 않은 데이터는 null 로 변경되어 버린다.
PATCH 요청 시에는 새롭게 바뀐 부분만 반영되며 나머지는 기존의 데이터가 유지된다.
728x90
반응형