소프트웨어 개발을 위한 구조적인 툴
사용하는 이유
Python 기반의 웹 프레임워크
DRY (Don't Repeat yourself) 원칙
코드 중복을 최소로 하는 개발 원칙을 따름
갖춰진 프레임워크
보안, 관리자 기능, Auth 등
풍부한 레퍼런스
검증된 프레임워크
어떠한 도구 (프레임워크)를 고를 때는 그것을 어디에 사용했는지를 봐야한다.
스포티파이, 인스타그램, 토스, 화해 등에 Djano가 사용되었다.
mkdir django -> 디렉터리 생성
ls - 현재 파일 경로 확인
python -m venv venv -> 가상 환경으로 구축
source venv/bin/activate -> 전역이 아닌 가상 환경의 pip list 로 사용
전역으로 설정하여도 크게 지장이 가지 않는다.
pip freeze > reqirements.txt -> 충돌이 일어나지 않도록 버전들을 명시해서 기록해주는 텍스트 파일(의존성 파일) 생성
pip install -r reqirements.txt -> 명시된 버전들을 한 번에 설치해주는 명령어
django-admin startproject (my_first_pjt)
cd my_first_pjt -> 경로 이동
python manage.py runserver -> 서버 가동
ctrl + c -> 서버 종료

주로 사용하게 될 파일은 settings.py , urls.py 가 된다.
Project : 어플리케이션의 집합체
App : 각각의 기능 단위 모듈
python manage.py startapp (articles) -> App 생성

my_first_pjt 폴더 settins.py 의 INSTALLED_APPS =[
'(articles)', ] 을 입력하고 저장 -> App 등록

Client
Server
구글 사이트에 접속
➡️ 어딘가에 있는 구글 사이트를 가지고 있는 컴퓨터에게 'Google.html' 을 달라고 요청
MTV 패턴은 MVC 패턴을 변형한 것이다.
MVC | MTV |
|---|---|
Model | Model |
View | Template |
Controller | View |
각 각
View의 기능을 Template가, Controller의 기능을 View가 수행한다.
Model
MVC에서의 Model 이다.
데이터와 관련된 로직을 처리한다. (데이터 구조 정의, 데이터베이스 기록 관리)
Template
MVC에서의 View 이다.
레이아웃과 화면상의 로직을 처리 (UI와 레이아웃)
View
MVC에서의 Controller 이다.
메인 비즈니스 로직을 담당한다.
클라이언트의 요청에 대해 처리를 분기하는 역할을 한다. (DB조회, 외부 요청, 응답을 만들어서 클라이언트에게 전달 등등)

변수 (Variable)
{{ variable }}
. 을 사용하여 변수의 속성 값에 접근 가능필터 (Filters)
{{ variable|filter}}
태그 (Tags)
{% tags %}
명시해야할 것은 파이썬 코드가 안 쪽에 들어가는 것이 아닌 DTL문법에 불과하다는 것이다.
이 둘은 엄연히 다른 존재이다.