Django : 파이썬으로 웹 애플리케이션을 개발할 수 있는 무료 오픈 소스 웹 프레임 워크.
Django 특징
ORM(object-Relational Mapping) : 데이터베이스와의 상호작용을 자동화해서 개발자가 SQL쿼리를 작성할 필요없이 데이터를 편리학세 다룰 수 있음.
Admin 페이지 : 기본적인 CRUD 기능이 갖춰진 관리자 페이지를 자동으로 생성.
MTV 패턴 : Model-Template-View 패턴을 가지고 있어서 기능들을 분리하여 개발 가능.
Django 의 구성 요소 (MTV 패턴)
Model : 데이터베이스와 상호작용을 하는 컴포넌트
Template : 사용자에게 보여지는 HTML, CSS, JS 등
View : HTTP 요청 처리 및 Model과 Template 연결
Django 의 프로젝트 구조
프로젝트는 Django 메인 폴더 안에 django_project, manage.py, apps, templates, static, media, virtual_env 로 구성됨.
Django project folder
django로 만들어진 애플리케이션의 기본적인 세팅을 담당하는 파일들로 이루어져 있음.
settings.py : 데이터베이스 정보, 설치된 앱, 미들웨어 등 프로젝트의 기본적인 설정 정보를 포함하는 파일
urls.py : 프로젝트의 URL 패턴을 포함. URL 패턴은 요청과 응답을 처리하는 View와 대응됨.
wsgi.py : 웹 서버에 배포하기 위해 사용. 애플리케이션을 실행하기 위한 WSGI 호환 인터페이스 제공.
__init__.py : 이 파일이 존재하는 디렉토리(폴더)가 패키지로 처리되어야 함을 나타내는 파일.
manage.py
프로젝트를 관리할 때 사용하는 커맨드 라인 인터페이스. 이 파일을 이용해서 데이터베이스 마이그레이션, 애플리케이션 서버 실행 등 다양한 작업을 수행. 프로젝트 폴더의 root 디렉토리에 위치.
Make Migration : 데이터베이스 마이그레이션을 생성하고 적용.
- python manage.py makemigrations
- python manage.py migrate
Run Server : 개발 서버를 실행
- python manage.py runserver
Make Application : 새로운 어플리케이션을 생성
- python manage.py startapp
Make Super User : 프로젝트를 관리하는 슈퍼 유저 생성
- python manage.py createsuperuser
apps
애플리케이션 폴더는 프로젝트 하위 디렉토리 중 하나로 각 애플리케이션이 위치하는 폴더. 앱 단위로 하위 폴더 구조를 갖게 되고, 각 앱의 구조는 독립적이지만 Django에서는 각각 앱이 유기적으로 연결됨. manage.py 로 새로운 애플리케이션 만듦.
models.py : 데이터베이스 모델을 정의하는 파일. 데이터베이스의 테이블과 같음
views.py : HTTP 요청을 처리하는 view 함수를 포함하는 파일. view 함수는 요청을 처리하고 데이터베이스에서 데이터를 검색하거나 template을 랜더링해서 결과 반환.
urls.py : 애플리케이션의 URL 패턴을 정의. URL 패턴은 HTTP 요청을 처리하는 view 함수와 연결
admin.py : 애플리케이션의 모델을 관리하는 관리자 페이지를 정의.
test.py : 애플리케이션의 유닛 테스트를 정의. 기능을 검증하고 버그를 찾을 수 있음.
migrations
데이터베이스 스키마 변경 내역을 추적하는 도구. 마이그레이션 생성 및 적용은 manage.py 파일을 이용해서 작업.
templates
HTML 템플릿을 저장하는 곳. View에서 데이터를 처리한 후, HTML 템플릿에 전달해 사용자에게 동적인 웹 페이지를 보여주는데 이때 사용되는 화면을 생성하는 레이아웃으로 사용. Django template language 를 사용하여 작성해 템플릿 내에서 동적으로 데이터를 다룸.
static
정적 파일(CSS, JS, 이미지)저장하는 곳. 정적 파일들은 웹 페이지 레이아웃을 구성하거나 프론트엔드 라이브러리를 사용하기 위해 필요한 구성 요소.
media
사용자가 애플리케이션에 업로드한 파일들(이미지, 동영상)을 저장하는 곳.
virtual_env
프로젝트에서 가상환경을 구성하고 사용되는 곳. venv 모듈을 이용해서 가상환경 구성.
'Django' 카테고리의 다른 글
Django 실습(4) Model과 DB를 이용한 게시물 관리와 업로드 (1) | 2023.10.11 |
---|---|
Django 실습(3) Bootstrap 사용해서 블로그 만들고 꾸미기 (0) | 2023.10.10 |
Django 실습(2) Templates 분리와 상속으로 블로그 만들기 (1) | 2023.10.10 |
Django 실습(1) 핫딜 크롤링해서 상품 사이트 만들기 (0) | 2023.10.05 |
Django 실습(0) 튜토리얼 (0) | 2023.10.04 |