Django는 Python으로 작성된 고급 웹 프레임워크
모놀리식 구조 :
Django는 모놀리식 프레임워크
(모놀리식 구조는 전체 애플리케이션의 기능이 단일, 통합된 코드베이스 내에서 구현되는 개발 방식)
마이크로서비스 아키텍처를 구현하기 어려울 수 있음
(마이크로서비스 아키텍처는
소프트웨어를 작은 독립적인 서비스로 분해하여 개발하고 배포하는 아키텍처로,
유연성과 확장성을 높이며 개발 및 유지보수를 단순화)
Django는 많은 장점을 제공하는 강력한 웹 개발 프레임워크
Django로 개발된 웹사이트 예시
Django MVT 패턴
모델-뷰-템플릿 (Model-View-Template, MVT)
전통적인 컨트롤러의 역할이 뷰에서 수행
전통적인 뷰의 역할이 템플릿에서 수행
애플리케이션의 데이터 구조를 정의하며, 데이터베이스와의 상호작용을 처리
애플리케이션의 비즈니스 로직을 처리
사용자에게 보여질 최종 HTML 응답을 생성하는 데 사용됨
전통적인 MVC 패턴에서는
컨트롤러가 사용자의 요청을 받아 모델을 통해 데이터를 처리하고,
뷰를 통해 그 결과를 사용자에게 전달하는 구조
...\> py -m django --version
...\> django-admin startproject mysite
생성되는 파일 살펴보기
manage.py : Django 프로젝트를 위한 커맨드라인 유틸리티
__init__.py : 해당 디렉토리를 Python 패키지로 처리
settings.py : 프로젝트의 설정을 담당하는 파일
urls.py : 프로젝트의 URL 선언을 관리
asgi.py : 비동기 서버 게이트웨이 인터페이스(ASGI) 설정 파일
wsgi.py : 웹 서버 게이트웨이 인터페이스(WSGI) 설정 파일
...\> py manage.py runserver
...\> py manage.py startapp polls
polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
]
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("polls/", include("polls.urls")),
path("admin/", admin.site.urls),
]