Python

[Django] Django란?

J520 2024. 8. 12. 23:48

Django란?

 Django는 Python 웹 프레임워크로, 2003년 로렌스 저널 월드 신문을 만들던 웹 개발팀의 내부 프로젝트로 시작해 2005년에 오픈소스 프로젝트로 공개되었다.

 Django는 웹사이트를 구축할 때 사용자 인증(회원가입, 로그인, 로그아웃 등)이나 관리자 패널, 폼, 파일 업로드와 같은 요소들을 제공해 개발자의 부담을 줄여준다.

 

cf. 짧은 비화들

- django 이름의 의미 : Django는 1930년대부터 1950대초까지 활동한 재즈 manouche 기타리스트 Django Reinhardt에서 따왔다고 한다.

- django 발음에 대한 녹음 파일 : https://www.red-bean.com/~adrian/django_pronunciation.mp3

 

[출처]

https://docs.djangoproject.com/ko/5.0/faq/general/

 

자주 묻는 질문: 일반 | Django 문서

The web framework for perfectionists with deadlines.

docs.djangoproject.com

 

 

- Model-View-Template (MVT) 아키텍처

  Django는 MVT 패턴을 가진다.

 

  1. 모델 (Model) : 애플리케이션의 데이터 구조를 나타내며 데이터의 저장, 조작, 검색 방법을 정의. 데이터베이스 엑세스 컴포넌트
  2. 뷰 (View) : 사용자 요청을 처리하고 응답 반환. 웹 요청을 입력으로 받아 처리하거나 데이터를 검색한 뒤 HTTP 응답을 반환
  3. 템플릿 (Template) : 클라이언트로 전송되는 HTML의 구조와 레이아웃을 정의. 텍스트 파일로서 간단하고 유연한 구문을 사용하여 HTML의 구조를 설명하고 뷰에서 동적 콘텐츠를 포함할 수 있도록 함. 데이터를 사용자에게 보여주는 컴포넌트

 

cf. Django의 MVT 패턴은 MVC 패턴으로 보여지는데 왜 Controller를 “View”라고 부르고, View를 “Template”이라고 하는지?

출처 : https://nitro04.blogspot.com/2020/01/django-mvc-mvt.html#1down

Django의 작업 흐름 예시
 1. 사용자 Request: 사용자가 Django 애플리케이션에 요청
 2. View (MVC Controller): Django의 View가 요청을 받음. Model에 데이터를 쿼리하거나 다른 비즈니스 논리를 수행하고 렌더링에 적합한 템플릿을 선택
 3. Template (MVC View): 선택한 템플릿은 View에서 데이터를 수신하고 사용자에게 보낼 HTML을 생성.
 4. Response: HTML이 응답으로 사용자에게 다시 전송.

 

 Model-View-Template(MVT)이라는 용어는 Django 프레임워크 내의 특정 역할과 상호 작용을 반영하기 위해 사용 됨

 - Model: 데이터 및 비즈니스 로직을 관리
 - View: MVC의 Controller와 유사하게 요청 처리 및 비즈니스 로직을 관리
 - Template: MVC의 View와 유사하게 프레젠테이션을 관리

 

[출처 및 참고]

https://docs.djangoproject.com/ko/5.0/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names

 

자주 묻는 질문: 일반 | Django 문서

The web framework for perfectionists with deadlines.

docs.djangoproject.com

https://nitro04.blogspot.com/2020/01/django-mvc-mvt.html#1down

 

[ Essay - Technology, Django, Web ] MVC 패턴과 MVT패턴의 차이점에 대해

 

nitro04.blogspot.com

 

 

- ORM(Object-Relational Mapping, 객체 관계 매핑)

 Django는개발자가 SQL 쿼리를 직접 작성하는 대신 Python 객체와 메서드를 사용하여 데이터베이스와 작업할 수 있게 해준다. 그래서  SQL 문장을 사용하지 않고도 테이블을 조작할 수 있다. PostgreSQL, MySQL, SQLite, Oracle 등의 데이터베이스에 대해 ORM을 지원한다.

 

 

[출처 및 참고]

https://hongong.hanbit.co.kr/%EC%9E%A5%EA%B3%A0django%EC%9D%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%EC%9E%A5%EA%B3%A0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%84%A4%EC%B9%98%ED%8C%8C%EC%9D%B4%EC%8D%AC-3-x-%EB%B2%84%EC%A0%84-%EC%9E%A5/

 

파이썬 웹 개발① 장고(Django)의 특징과 장고 프로그램 설치

장고(Django)는 웹 프로그래밍에 사용되는 파이썬 웹 프레임워크 중 가장 준비가 잘 되어 있는 것 중 하나입니다. 제공하는 기능이 풍부하여 쉽고 빠르게 웹 개발이 가능하고 사용자도 가장 많기

hongong.hanbit.co.kr

https://wikidocs.net/197521

 

03) Django 소개

[TOC] ## Django란 무엇이며 왜 사용하는가? Django는 Python 프로그래밍 언어를 사용하여 견고하고 확장 가능한 웹 애플리케이션을 개발할 수 있는 고수준 오…

wikidocs.net

'Python' 카테고리의 다른 글

Python 문법 기초  (0) 2024.07.12