TIL. Django 좀 쉽게 이해할순없을까?

Kim Chioh·2021년 1월 27일
0
post-thumbnail

'The web framework for perfectionists with deadlines.'
The slogan of Django.
크 멋지지 않나요. 장고의 슬로건.
한 출판사에서 개발을 시작했다고 하는 장고는 아주 많은 기능을 합니다.

오늘은 장고의 전반적인 이해를 높이기 위해 블로깅을 합니다.
다뤄볼 내용은 아래와 같습니다.

django란 무엇인가?
왜쓰는가?
전체적인 플로우의 이해
그리고 models.py views.py urls.py의 역할들 명확하게 알아보고

그다음에 쉘. 클래스. 디테일편으로 넘어가겠습니다!

1. 장고란 뭐냐?, 그걸 왜 써?

말보다 그림으로 먼저 보는게 빠릅니다.

장고는 유명한 웹 프레임워크인데요, 프레임워크란 웹사이트를 개발하기위한 도구들을 모아놓은 것이라고 이해하시면 좋습니다. 하나씩 다 만들지않고 도움을 받아서 쓰면 시간도 돈도 아낄수 있겠죠. 장고는 한마디로 올인원 입니다. 하나로 정말 많은 일을 처리하는데요, 보안, 데이터베이스, 관리자페이지 등등 엄청 많은 일을 합니다. 그 중 우리는 그림의 네모칸에 있는 구간의 이들을 배울겁니다.

위의 그림은 장고가 웹 프레임워크로써 백엔드에 어떤 구간을 도와주는지를 알수있습니다.

2. 전체적인 플로우의 이해

2.1.먼저 그림을 단순화시켜보겠습니다.

  1. 요청을 받는다.(request)
  2. 그것을 어디에서 해결할지 분석한다. (url)
  3. 해결한다.(view, model)
  4. 응답을 보낸다.(respond)
  • 제가 앞의 블로깅에서 http정리한거 기억하신다면, 어느정도 이해가 되실거에요. 디테일뷰도 한번 보실래요?

2.1. 디테일뷰

1단계.

클라이언트(프론트)에서 서버로 요청(request)를 하면 서버가 그것을 받아 URL conf(urls.py)에서 어디로 보내야할지 분석을 합니다. 그리고 쏩니다. 쓩

2단계. view로 갑니다. 근데 백엔드는 model부터 보는게 좋습니다.왜냐면 데이터베이스를 구현해 놔야(model에서 하는 일) view(로직)이 의미가 있거든요.

model에서는 클래스를 테이블로 구현하기 위한 준비를 합니다.
데이터베이스에 이런 클래스들에 대응하는 테이블들을 만들어줘~~ 라고 한 후!
django shell을 이용해 명령어들을 입력해 데이터를 입력, 출력, 삭제, 수정 등을 처리합니다.

3단계. view에는 로직이 있다고 언급했는데요.
이는 조금 내용이 길지만 설명해보도록 하겠습니다.
간단하게, model에 만들어놓은 클래스(데이터베이스의 테이블에 대응)를 처리하기 위한 로직드르을 또 클래스로 구현하지만 조금 다릅니다. 어떻게 다르냐하면...

Client의 HTTP 요청(https://127.0.0.1/products)을 분석(urls.py)하여 요청을 처리하기 위한 로직(views.py)을 실행시켜, 데이터베이스와 통신(models.py)하여 데이터 작업을 수행하고 요청에 맞는 HTTP 응답을 Client에게 보내줄 수 있는 Backend API를 구현하는 것입니다.

2.2. 조금 쉽게 알아보자.

엥? 뭔소리죠 이게 ㅋㅋㅋ
view는 로직이니 로직을 실행시켜 데이터베이스에 이렇게이렇게해~~ 라고 model에 명령을 내린다는 것입니다.
model은 받은 명령을 수행하고, 즉 이것이 http의 요청을 처리하고 응답하는 과정 중 하나라는 것입니다.
이 과정이 모두 backend api를 구현하는 과정입니다.

3. 마무리하며

여기까지, 장고 큰그림 그려보자편이였습니다. 하하.
쉽게 쓴다고 썼는데, 쉽지않네요.. 앞으로 더 쉽게 써보겠습니다~~

profile
Just do what to do

0개의 댓글