이번주 목표는 '파이썬 장고 프레임웍을 사용해서 API 서버 만들기'였다. 장고가 처음이였던 나는 정의조차 처음이라 바로 실습 들어가는 데 많이 헤맸다. 정보 과부화 시대에 유튜브에도 분명 장고 관련 영상이 있을 거라 생각했고 검색해보니 역시나 생활코딩에서 튜토리얼을 다뤘다. 아래의 내용은 생활코딩의 장고로 학습한 내용의 일부이다.
django란?
웹 애플리케이션을 만드는데 도움을 주는 도구인 파이썬 장고 웹 프레임워크이다.
파이썬과 html을 다룰 수 있어야 하고 아래와 같은 문제를 겪고 있을 때 유용하다.
- 페이지가 많아지니까 유지보수 하는 것이 힘들다.
- 독자들의 투고를 받아서 웹페이지를 만들고 싶다.
- 사용자마자 다른 웹페이지를 보여주고 싶다.
settings.py : 프로젝트 운영에 필요한 setting
urls.py: 사용자가 접속하는 pass에 따라 그 접속(요청)을 어떻게, 누가 처리할 것인가를 지정하는, 라우팅을 해주는 파일
manage.py: 여러 가지 기능이 있는 유틸리티 파일
runserver : 장고 기본서버 접속, 8000번 포트로 접속 8000번 포트를 사용하고 있을 경우 runserver 다음에 포트를 지정
사용자가 접속하면 여러가지 경로로 각각의 경로를 누구에게 위임할 것인가를 urls.py를 수정해서 코딩
urls.py에 적혀 있는대로 적당한 app에, 적당한 view, 적당한 함수로 들어가게 됨
- client인 사용자는 우리가 만든 웹어플리케이션을 보기 위해 요청을 한다.
- 장고에서는 개발을 위해 경량 개발 웹서버가 이미 세팅 되어 있는데 상용에 배포할 때는 nginx나 apache와 같은 웹서버를 사용한다.
- client가 요청을 하면 웹서버가 요청을 맞이한다.
- 요청이 되었으니 request가 넘어간다. 사용자가 특정 주소를 요청하면 urls.py에서 요청한 주소를 잘게 나눠준다(=파싱한다).
- 잘게 나눠진 주소들은 역할에 맞게 뷰로 이동된다.
- 뷰에는 웹 어플리케이션의 각각 맞는 작업을 하기 위한 코드가 존재한다.
- 요청 받은 데이터를 저장하거나 또는 데이터베이스에서 꺼내오는 등의 역할에 맞는 기능을 제공한다.
- 뷰 작업이 끝나면 디자인 담당인 템플릿으로 이동되고 사용자는 response를 받게된다.
- 사용자는 방금 설명을 드린 과정을 거친 후에 화면을 볼 수 있다.
라우팅(경로): 사용자가 접속한 각각의 경로를 누가 처리할 것인가를 지정하는 것
project 폴더 안에 urls.py가 가장 큰 틀의 라우팅을 하고
적당한 앱으로 위임을 해주면 앱이 특정 함수로 위임을 해줌
반응형