본문 바로가기
Frameworks/Django

Django2.1 내가 보는 강의 tutorial 1

by Nov19 2019. 3. 12.
반응형

Django2.1 내가 보는 강의 tutorial 1


Django의 구조

Django 프로젝트를 생성하여 사이트를 만들게 되면 다음과 같은 구조가 된다.

CONFIG - 기본적인 프로젝트 설정 내용을 담고 있다.

STATICS - 정적 파일을 관리하는 디렉토리이다. js, css, 파일 등을 담는다.

MEDIA - 동적 미디어 파일을 관리하는 디렉토리이다. 이미지나 동영상을 담는다. 

- 동적 파일이란 사용자가 업로드 하는 등의 파일을 말한다.

TEMPLATES - 사이트에서 공통적으로 사용하는 헤더, 푸터, 사이드바, 메뉴 등의 템플릿 파일들을 모아두는 곳이다.

APP - 사이트내에서 하나의 기능을 하는 단위로 볼 수 있다.

 네이버에서 블로그, 카페, 쇼핑 등의 기능이 분리되어 있듯, Django에서는 APP의 단위로 분리한다.






Django URL

다음과 같이 사이트에는 각각의 기능을 하는 단위로 분류되어 있다. 

네이버 메인에 접속하려면 www.naver.com으로 접속한다.

블로그로 접속하려면 section.blog.naver.com 으로 접속하며

쇼핑으로 접속하려면 shopping.naver.com 으로 접속한다. 

앱에 URL을 정하고 이를 이용해 해당 앱에 접근한다.

Django에서는 다음과 같이 urls.py 파일에 url들을 정의하여 url의 흐름을 분기한다.

메인 화면에서 블로그와 쇼핑 앱이 있다면 이는 Django 프로젝트의 urls.py에서 각 앱으로 연결되는 url들을 정의한다. 해당 url로 이동하면 해당 앱으로 접근한다.

앱에서도 다시 여러가지 기능들로 나눌 수 있다.

블로그를 예로 들면 블로그의 내용을 확인하는 페이지, 

블로그에 글을 등록하는 페이지, 수정, 삭제하는 페이지 등 여러 기능들이 있고,

이 기능들을 수행하기 위한 url들이 앱안에서 또 정의된다.



Django 모델, 뷰, 템플릿

모든 사이트들은 사용자가 데이터를 요청하면 서버에서 응답받은 데이터를 출력하고

사용자는 그 출력된 데이터를 볼 수 있다.

Django 에서는 이러한 요청을 처리하는 과정을 다음과 같은 패턴으로 처리한다.


모델 - 앱에서 사용하는 데이터의 구조를 정의한다. 

예를들어 블로그라는 앱에서는 글의제목, 글의내용, 작성날짜 등의 데이터를 저장하고 사용해야 한다.

모델(models.py)에서 이 데이터를 어떻게 저장할지 정의한다.


뷰 - 어느 모델에서 어떤 데이터를 가져와 어느 템플릿으로 보낼 것인지 정한다.

블로그라는 앱에서는 블로그 모델을 가져와 블로그 템플릿에 담아 출력해야 하는데 이 과정을 views.py에 정의한다.


템플릿 - 데이터를 담아 출력한다. 쉽게 html로 디자인되어 있는 페이지를 말한다.

Django에서는 템플릿 태그 {{ }}, {% %} 를 이용해 뷰에서 건네받은 데이터를 제어할 수 있다.



반응형

댓글