슈코딩

[Django] 기초개념 본문

코딩공부/Django

[Django] 기초개념

Roshu 2022. 5. 27. 10:08

 

1. Framework

파이썬의 대표적인 웹프레임워크는 두가지로 나눌 수가 있다고 한다.

- 최소한의 기능만을 제공하는 형태

- 이미 많은 기능들을 제공하는 형태

 

최소한의 기능만을 제공하는 형태의 프레임워크에는 그동안 사용했던 Flask가있고

Flask외에도 Pyramid라는 프레임워크가 대표적이라고 한다.

많은 기능들을 제공하는 형태의 프레임워크는 대표적으로 Django가 있다.

 

Django와 Flask,Pyramid를 비교해보면 이러한 특징들이 있다.

 

 

실제로 강의를 들으며 Django에서 간단한 기능들을 실습해보니, Flask에서 직접 만들어야 했던

기능들을 Django에서는 다 제공을해주어 연결시키거나, 간단한 코드로 이미 다 구현이 되는걸

보면서 신기하면서도 편리하다고 느껴졌었다. 이 두가지의 프레임워크들을 다른말로 

Flask- 최대한 덜어낸 마이크로 프레임워크

Django- 많은 기능을 보유한 풀스택 프레임워크 

이렇게 구분을 한다.

마이크로 프레임워크는 크게 4가지기능이 없는 프레임워크를 말한다고 한다.

1) 인증인가 기능 (회원가입, 로그인 등)

2) 데이터베이스 추상화 (ORM=(파이썬으로 사용할 수 있는 SQL 번역기 개념))

3) 검증 및 보안 기능

4) 템플릿 엔진

Flask는 템플릿엔진(Jinja2) 을 제외한 나머지기능은 없다.

반대로 Django는 4가지 기능들을 다 포함하고 있다.

 

이 두가지의 프레임워크들은 각각의 특징을 가지고 있으며 개발자의 성향, 그리고 상황에 따라

장단점이 있다고 한다. 통상적으로 현업에서는 9:1 비율정도로 장고를 많이 이용해서 웹개발을

한다고 한다. 그래서 커뮤니티도 훨씬 발달 되어있다고 한다.

이제 본격적으로 장고에 대해서 알아보자.

 

 

2. Django 😃

Django 에는 Admin site가 내장되어 있다. 관리자 사이트가 내장되어있어서

따로 프론트를 제작하지않아도 바로 관리할수있는 페이지가 제공되는 특징이 있다.

 

 

 

Django의 Process

 

 

1) 웹 브라우저로부터 요청을 받으면 URL을 확인하고 (urls.py)

2) 확인 결과를 통해 해당 URL에 대한 처리를 담당하는 View를 결정, 요청 전달 (views.py)

3) View는 로직을 실행

- DB처리가 필요한 경우, Model을 통해 처리하고 결과를 받는다. (models.py -> database)

- HTML 렌더링이 필요한 경우, 응답할 HTML 파일을 생성 (templates folder -> html file)

4) View는 최종적으로 처리된 결과 or HTML 파일을 웹 브라우저에게 보내 응답한다.

 

MTV(MVT) 패턴

Django는 디자인 패턴중 MVC패턴과 유사한 MTV 패턴을 사용한다.

-데이터(model), 사용자 인터페이스(template), 데이터 처리 로직(view)을 구분

-각 구분된 부분의 내용이 독립되어있으며 서로 간섭을 주지 않게 설계를 한다.

M (Model) - 데이터베이스의 모델, 저장되고 사용되는 데이터 형태

T (Template) - 사용자에게 보여지는 부분,화면

V (View) - 실질적으로 프로그램이 동작하는 부분

 

ORM

객체(Object)와 관계(Relation)을 연결(Mapping) 해주는 개념

->파이썬 문법(dot notation)으로 편하게 데이터베이스에 있는 데이터를 조작할 수 있게 해주는 방법

 

 

Out[1]처럼 유저정보를 가져오기위해 길게써야하는 코드를

In[1] 코드처럼 한줄로 간단하게 조작할 수 있게해준다.

Comments