훈훈훈

파이썬(Django) : 장고 웹 프레임 워크 정리 본문

파이썬/Django

파이썬(Django) : 장고 웹 프레임 워크 정리

훈훈훈 2020. 2. 3. 20:47

# 프로젝트와 애플리케이션

- 프로젝트 

 웹 사이트에 대한 전체 프로그램을 프로젝트(Project)라고 한다,

- 애플리케이션

 모듈화된 단위 프로그램을 애플리케이션이라고 한다.

즉, 애플리케이션 프로그램들이 모여 프로젝트를 구성하는 개념

 

# MVT 패턴

MVT 각 기능을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식이다. (MVC 패턴과 동일)

- Model : 데이터베이스에 저장되는 데이터를 의미

- VIew : 실질적으로 프로그램 로직이 동작하여 데이터를 가져오고 처리한 결과를 Templete에 전달

- Template : 사용자에서 보여지는 UI 부분

 

일반적으로  REST API 를 생성할때는 Model과 View 영역만 작성한다.

[Django의 MVT 패턴]

** Client의 요청을 받고, Django에서 MVT 패턴에 따라 처리하는 과정

- Client로부터 요청을 받으면 URL conf를 이용하여 URL 분석

- URL 분석 결과를 통해 URL에 대한 처리를 담당할 View 결정

- View는 자신의 로직을 실행하면서, 만일 데이터베이스 처리가 필요하면 Model을 통해 처리하고 그 결과를 반환받는다.
- View는 자신의 로직 처리가 끝나면 템플릿을 사용하여 클라이언트에 전송할 HTML 파일을 생성
- View는 최종 결과로 HTML 파일을 클라이언트에게 보내 응답

 

# Model - 데이터 베이스 정의

- 모델은 사용될 데이터에 대한 정의를 담고 있는 장고의 클래스

- 장고는 ORM 기법을 사용하여 애플리케이션에서 사용할  데이터베이스를 클래스로 매핑

- ORM 이란 ?

 객체와 관계형 데이터베이스를 연결해주는 역할을함

- 하나의 모델 클래스는 하나의 테이블에 매핑되고, 모델 클래스의 속성은 테이블의 컬럼에 매핑

 =>  SQL Query 문 없이도 다룰 수 있게됨

 

# URLconf - URL 정의

- 클라이언트로부터 요청을 받으면 가장 먼저 요청에 들어있는 URL 분석

- 즉, 요청에 들어있는 URL이 urls.py 파일에 정의된 URL 패턴과 매칭되는지 분석

 

# View - 로직 정의

- 웹 요청을 받아 데이터베이스 접속 등 해당 애플리케이션 로직에 맞는 처리를 함

- 그 결과, 데이터를 HTML로 변환하기 위해 Template을 처리 후, 최종 HTML로된 응답 데이터를 웹 클라이언트에 반환

 

# Template - 화면 UI 정의

- Django가 Client에 변환하는 최종 응답은 HTML 파일임

- 웹 브라우저는 응답으로 받은 HTML 파일을 해석 후, 웹 브라우저 화면에 UI를 보여줌

 

# mysite 

- "django-admin startproject mysite" 명령어로 생성

- 구성 : "__init__.py", "settings.py", "urls.py", "wsgi.py"

- 각 파일 목적

my site directory : 프로젝트명으로 만들어진 디렉터리, 프로젝트 관련 파일 들어있음

 1. __init__.py : 디렉터리에 해당 파일이 있으면 패키지로 인식

 2. settings.py : Project 설정 파일, 프로젝트에 필요한 설정 값들 저장

 3. urls.py : Project 레벨의 URL 패턴을 정의하는 최상위 URLconf, 보통은 애플리케이션 디렉터리 마다 하위 urls.py 생성

 4. wsgi.py : 웹 서버와 WSGI 규격으로 연동하기 위한 파일 (CGI와 유사한 역할)

 

# 테이블 생성

- migrate 명령 : 데이터베이스에 변경사항이 있을 때 반영해주는 명령

- makemigrations : 데이터베이스에 변경이 필요한 사항을 추출함 (migrate 명령어 적용 전에 선행되어야함)

 

# 테이블 정의

- PK(Primary Key) : 클래스에 지정하지 않아도, Django에서 디폴트로 Not Null 및 Autoincrement로 속성 지정, 이름은 id로 자동 지정

- FK(Foreign Key) : 항상 다른 테이블의 PK에 연결

- __str__( ) : 객체를 문자열로 표현할 떄 사용하는 함수

 

 

 

 

 

 

 

 

 

 

Comments