관리 메뉴

프로그래밍

[Django] Django 기본 동작 및 구조 이해 본문

Python/Django

[Django] Django 기본 동작 및 구조 이해

시케 2023. 11. 23. 17:18
728x90
반응형

2023.11.20.월

Django

장고(Django)는 파이썬으로 작성된 고수준 웹 프레임워크 이다.

빠른 개발과 유지보수를 위한 다양한 도구와 기능을 제공한다

MVC 패턴을 기반으로 한 MTV(Model - Template - View) 아키텍쳐 패턴을 따른다

 

2023.11.16 - [Python/Django] - [Django] MVC 와 MVT

 

[Django] MVC 와 MVT

2023.11.14.화 MVC 와 MVT MVC와 MVT 패턴 모두 효율적인 개발을 위한 SW 디자인 패턴이다 MVC 패턴은 이미 다룬바가 있다 더보기 2023.05.23 - [자바/자바 기초] - [자바 기초] day15 : MVC(Model, View, Controller) 2023.0

dev-9rm.tistory.com

 

장고 프로젝트를 한번 생성해보면 더욱더 구조 이해가 빠를 것이다

2023.11.13 - [환경설정] - [Django] Django 환경설정

 

[Django] Django 환경설정

2023.11.13.월 Django 환경 설정 장고는 파이썬 기반 이므로 파이썬을 설치해야 한다 https://www.python.org/downloads/ Download Python The official home of the Python Programming Language www.python.org 이후부터는 쭉 cmd(명령

dev-9rm.tistory.com

 

 

장고 프로젝트는 여러 개의 앱(App)으로 이루어져 있다

여러 개의 앱이 모여 하나의 프로젝트가 이루어지며

하나의 프로젝트가 곧 하나의 웹사이트이다

settings.py

장고 프로젝트 단위의 전반적인 설정을 한다

app.py

app은 프로젝트를 구성하는 작은 단위의 기능

app.py는 각 어플리케이션에 대한 항목들을 설정한다

ex. 앱의 별칭 부여, 시그널 수신자 등록

python manage.py startapp[앱이름] :: 프로젝트에서 app 생성

models.py

장고는 ORM(Object - Relation Mapping)을 지원한다
Models.py에 클래스 형태로 작성시  그에 맞게 맵핑
> 장고가 자동으로 DB를 관리해준다

Migrations은 이때 DB 스키마 변경을 기록한다
> Git 처럼 버전 관리를 가능케 한다

python manage.py makemigrations :: 마이그레이션 생성
python manage.py migrate :: 마이그레이션 적용(변경 사항 적용)

views.py

Client에서 보낸 Request(요청)에 대해서 Response(응답)하는 역할

필요한 데이터를 Model에서 가져와 적절히 가공한 후
그에 맞는 웹페이지를 보여준다
> 알맞은 Template 또한 반환

주요 로직은 views.py에 위치한다

urls.py

클라이언트로부터 요청을 받으면
URLconf를 이용하여 URL을 분석한다
(Client에서 보낸 Request== URL)

urls.py는 해당 URL(요청)이 어느 View에서 처리할지 기록해둔 파일이다
Url 맵핑에 따라 어느 View 메소드를 연결할지 정의한다

 

서버 실행 후 지정한 url 직접 입력하여 작동 확인 가능하다

python manage.py runserver :: 서버 실행 명령어

장고 MVT 패턴 구현 순서

1. 프로젝트 뼈대 만들기 : 프로젝트 및 앱 개발에 필요한 디렉토리와 파일 생성
2. 모델 코딩하기 : 테이블 관련 사항을 개발(models.py, admin.py 파일)
3. URLconf 코딩하기 : URL 및 뷰 매핑 관계를 정의 (urls.py 파일)
4. 템플릿 코딩하기 : 화면 UI 개발 (templates/디렉토리 하위의 *.html 파일들)
5. 뷰 코딩하기 : 어플리케이션 로직 개발 (views.py 파일) 

Django 흐름

클라이언트로부터 요청을 받으면 URLconf를 이용하여 URL을 분석
URL 분석 결과를 바탕으로 해당 URL 처리를 담당할 뷰를 결정
뷰는 자신의 로직을 실행하면서 만일 데이터베이스 처리가 필요하면 모델을 통해 처리 후 그 결과를 반환받음
뷰는 자신의 로직 처리가 끝나면 템플릿을 사용하여 클라이언트에 전송할 HTML 파일을 생성
뷰는 최종 결과로 HTML 파일을 클라이언트에게 보내 응답

 

 

728x90
반응형

'Python > Django' 카테고리의 다른 글

[Django] 장고 View  (1) 2023.11.27
[Django] 장고 관리자(Admin)  (0) 2023.11.27
[Django] 장고 Model 사용(생성, 조회, 수정, 삭제, 작성)  (1) 2023.11.27
[Django] 장고 Model  (1) 2023.11.24
[Django] MVC 와 MVT  (0) 2023.11.16
Comments