Django
Djang(장고)는 파이썬으로 작성된 오픈 소스 웹 어플리케이션 프레임워크(Framework)로, 모델-뷰-컨트롤러(MVC)패턴을 따르고 있다.
즉, 고도의 데이터 베이스 기반 웹사이트를 작성하는데 활용된다.
Django Framework의 특징
-
비교적 쉬운 언어인 Python을 기반으로 사용
-
개발속도가 빠르고 코드 완성도를 높게 유지 가능
-
웹 어플리케이션이 제공되어야 하는 사용자 인증, 사용자 관리등을 기본적으로 구현가능
-
MVC(Model-View-Controller)패턴 기반의 MVT(Model-View-Template)
- Model : 데이터를 의미, ORM방식을 사용. SQL구분을 직접 사용하지 않고 파이썬객체로(object)로 접근
- View : 데이터 입력을 받거나 표시하는 텀포넌트
- Template : 사용자에게 보여지는 View에 해당
-
ORM(Object-Relational-Mapping)기능지원으로 파이썬과 데이터베이스의 연동을 쉽게 하여 테이블을 객체와 연결해서 Query문을 사용하지 않고도 CRUD할 수 있다.
Django 동작 흐름

- 웹 브라우저에서 이벤트 발생 시
(ex. 특정 url 클릭, form에 data 입력 등의 액션)
Django 서버로 request(이벤트에 대한)가 들어온다
- Django 서버로 들어온 이벤트에 대해 URL Dispatcher가 URL을 분석해서 적합한 View로 요청을 보낸다.
- View는 사용자 요청을 받아 Database의 어디에 접근해서 어떤 data를 가공할 건인지 Model에게 알려준다
- Model은 Database와 연결하여 필요한 Database 연산을 처리한다.
- Database가 다시 Model로 결과값을 보내주면 Model이 이것을 View로 전달한다
View는 우리에게 보내줄 데이터를 다시 Template에게 전달한다
- Template는 .js나 .html과 같은 페이지를 만들어서 웹브라우저에게 넘겨준다

Manage.py
전반적인 Project관리를 도와주는 Module.
이 스크립트로 다른 설치작없이 컴퓨터에서 웹서버 실행이 가능하다
- 주요명령어
- startapp : 앱 생성
- runserver : 서버 실행
- createsuperuser : 관리자 생성
- makemigrations app : app모델의 변경사항 체크
- migrate : 변경사항을 DB에 반영
- shell : 쉘모드 진입. 쉘을 통해 데이터를 확인가능
- collectstatic : static 파일을 한곳에 모음.
views.py
views.py
는 project의 로직을 담당하는 파일
migrations 디렉토리
models.py
파일에 정의한 테이블 구조를 manage.py의 makemigrations 옵션을 통해 생성되는 파일이 저장되는 디렉토리
models.py
models.py
는 django의 기능중 하나인 ORM과 관련되어 있는 파일.
Database의 테이블을 정의하는 파일.
Setting.py
Setting.py
는 프로젝트 환경설정에 대한 내용을 담고 있다.
- Debug
디버그 설정 개발시에는 True값으로 지정해놓고 실제 서비스 배포시에는 False로 설정
- INSTALLED_APPS
pip로 설치한 App 또는 본인이 만든 App추가한다
- MIDDLEWARE_LCASSES
request와 response사이의 주요 기능 레이어(인증, 보안관련 내용을 다룸)
- TEMPLATES
Django Template관련 설정, 실제 뷰(HTML)를 관리
- DATABASES
데이터베이스 엔진의 연결 설정
- STATIC_URL
정적파일의 URL(CSS, JavaScript, Image 등)
urls.py
urls.py
는 이름대로 url경로에 대한 부분. 예를들어 user라는 app을 생성했을때 domain뒤에 RESTful API기준으로 /user를 추가하여 urlpattern을 설정하여 해당경로로 인도한다