[DJANGO]Django Work Flow

박민하·2022년 6월 9일
0

DJANGO

목록 보기
2/22
post-thumbnail

Django 공식 문서 GO


✅ Django?

  Django란 파이썬으로 웹 개발을 할 수 있는 Web Application Framework 중 하나다. 웹 페이지를 개발하는 과정에서 겪는 어려움을 줄여주기 위해 다양한 도구와 라이브러리를 제공한다.

✅ API

  API(application programming interface)소프트웨어끼리 서로 통신하고 데이터를 처리할 수 있게 한다. 날씨 앱이 날씨 정보를 표시할 수 있는 이유도 API를 통해 기상청의 기상 데이터와 통신할 수 있기 때문이다. API는 Django, Flask 같은 프레임워크로 만들 수 있다.

✅ Django Workflow

  프론트(Client)에서 request가 올 때면 백엔드에서 만든 web application server로 전달된다. 일단 지금 포스팅에서는 django로 만든 서버로 전달이 될 텐데, django 공식 문서에서 배포용으로 사용하지 말라고(웹 서버가 아닌 웹 프레임워크이므로)하지만 개발 목적으로 테스트 해보는건 문제 없다.

1. URLconf

  프론트로부터 요청이 오면 가장 먼저 확인하는 부분이다. 요청을 받으면 URLconf에서 어떤 요청인지 분석하고 요청에 맞는 로직을 호출하게 된다. url.py는 main과 app 디렉토리에 하나씩 있는데, main의 url.py는 어느 앱으로 갈지를 정해주고, app의 url.py는 앱의 어느 view를 호출할지를 정해준다. 이렇게 원하는 요청을 분석해서 해당하는 view로 옮겨준다.

2. Views

  request/response 로직을 처리하는 곳이 Views 다. 처리에 필요한 데이터는 데이터베이스에서 가져온다. 어떤 데이터를 가져와야하고 어떻게 갖고와야 하는지, 어떤 데이터를 갖고올 수 있는지를 정의하는 곳이 Model이다. API에 존재하는 요청이라면 client 측으로 response한다.

3. Model

  models.py 에서 작성하는 class는 한 개 당 table이 한 개 씩 만들어 진다. class의 attribute(속성) 하나하나는 column(필드)이 된다. model.py 에서 작성한 class대로 데이터베이스에 table을 생성할 수 있고, 데이터를 가지고 오거나 업데이트 및 삭제가 가능하다.

  아래는 model에서 만든 class와, migrate를 통해 구현한 데이터베이스다. Drink class가 하나의 table(릴레이션)을 만들었고, name과 category라는 속성은 데이터베이스의 필드 값이 된 것을 볼 수 있다.

profile
backend developer 🐌

0개의 댓글