Django

백엔드와 Django DRF, RESTful API

zhelddustmq 2024. 8. 23. 09:09

01. RESTful API

02. JSON

 

기존의 Django

  • Django는 Web App을 빠르게 개발하기 위한 고수준의 웹 프레임워크
  • 즉, 기존에는 Web의 전체 기능이 모두 들어있는 Web Application을 제작
  • → 요청에 대해서 html 파일(웹 페이지)을 응답하는 Web Application을 만듦
  • MTV를 활용한 Web
  • 데이터 모델링, URL 라우팅, 템플릿 시스템, 관리자 기능, 세션, 보안 …

백엔드로써의 Django

  • 보여지는 부분은 처리하지 않고 오직 로직에 집중하는 형태를 만듦
  • → 요청에 대해 처리한 결과 데이터를 응답하는 형태
  • Django REST Framework (DRF)를 이용함
  • → Django + DRF라고 하는 패키지를 살짝 얹은것(확장)으로 Django를 다룰 수 있다면 무리없이 사용할 수 있음.
  • DRF == 흔히 말하는 RESTful API를 Django로 구축하기 위한 확장 프레임워크

01. RESTful API: 어플리케이션간 소통하는 방법에 REST적인 표현을 더한 것

⇒ REST 원리를 따라 설계한 API

  • RESTful API로 작성하면 결과를 보지 않고 요청 형식만 보더라도 추론이 가능
  • POST /articles/
    → 새로운 article 생성
  • GET /articles/
    → article 목록 조회
  • GET /articles/1
    → 1번 article 조회 
  • DELETE /articles/1/
    → 1번 article 삭제

핵심 규칙

  • 자원 : URI로 표현
  • 행위 : HTTP Method로 표현
  • 표현
    • 자원과 행위를 통해 표현되는 결과물로 일반적으로 JSON 형식을 사용
    • URI는 동사가 아닌 명사의 나열로 사용
      → POST /articles/ (O)
      → POST /articles/create/ (X)
  • 따르지 않더라도 로직과 동작에는 아무런 이상이 없으나, 이 규칙을 따를 때 얻는 이득이 큼
  • 일반적으로 GET POST PUT DELETE + PATCH를 사용

02. JSON: JS 표기법을 따른 일종의 데이터를 담는 형식

사람이 읽기 쉽고 프로그래밍으로 파싱(분석)하기 쉬움

파이썬의 dict처럼 key-value 형식의 구조

 

사용해보기

  • .json 형식으로 사용
  • 문자는 "으로 묶여야하며 true false , 숫자 등도 사용가능
["리스트", 1, true, "다양한 자료를 담을 수 있어요"] // list
{ key: value } // object
{
	"user1": {
			"name": "aiden",
			"age": 22,
			"tags": ["python", "javascript", "django"]
	},
	"user2": {
			...
	},
	...
}

object안에 또 object 등이 담길 수 있음.

 

'Django' 카테고리의 다른 글

Django Seed(Response와 Serializer)  (0) 2024.08.29
장고 TemplateSyntaxError  (0) 2024.08.28
Django Bootstrap, Fontawesome  (0) 2024.08.22
Model Relationship(M:N)  (0) 2024.08.21
Custom UserModel(플젝 시작시 유의)  (0) 2024.08.20