1. 개념
파이썬 언어로 구현된 풀 스택 프레임워크로 2003년 에이드리안 홀로바티와 사이먼 윌리슨에 의해 탄생되었다.
다른 여타 프레임워크와 같이 MVC 패턴의 특성을 가지나 컨트롤러(Controller) 대신 템플릿(Template) 계층을 사용한다는 점이 있다.
또한 파이썬의 언어적 특성으로 인해 몇줄만의 코드로도 쉽고 빠르게 구현할 수 있으며 수많은 라이브러리가 지원되어 생산성을 높일 수 있는 장점이 있다.
2. setting.py
프로젝트 설정파일로 생성시 자동으로 등록되어 필요할 때마다 추가적으로 등록할 수 있다.
> django-admin startproject [프로젝트 명]
- 데이터베이스 설정: 기본적으로 SQLite3로 되어 있으나 다른 SQL로도 바꿀수 있다
- 어플리케이션 등록: 프로젝트에 어플리케이션을 추가할 때 등록한다
> python manage.py startapp [어플리케이션 명]
- 템플릿 항목 설정: TEMPLATES 항목으로 지정하여 html 파일의 경로를 지정할 수 있다
- 정적 파일 항목 설정: STATIC_URL와 같은 관련 항목을 지정한다
- 타임존 지정: 기본적으로 UTC로 지정되어 있으나 한국 시간으로 변경할 수 있다
3. models.py
테이블을 정의하는 파일로 ORM(Object Relational Mapping) 기법을 통해 CRUD 기능을 내부적으로 처리한다.
원하는 테이블 기능의 생성, 변경이 있을 경우 터미널에서 makemigrations와 migrate 명령을 입력하여 DB에 반영한다.
> python manage.py migrate
> python manage.py makemigrations
4. urls.py
URL 및 View 계층을 매핑하는 기능을 가진 파일로 Spring 프레임워크의 Controller 파일 구조와 흡사하다.
다만 장고에서는 URLconf를 정의할 때 urls.py 하나에서만 정의하거나 views.py라는 별도의 파일을 통해 기능을 분리하여 매핑할 수 있다.
5. views.py
뷰 로직을 코딩하는 파일로 View 계층의 핵심 기능을 담당한다.
간단하게 몇 줄만으로 구현이 가능하다는 점이 있어 가독성과 유지보수 및 편의성, 재활용을 고려할 수 있는 여지가 많다.
- 함수형 뷰(Function-based view): 뷰 로직을 함수 형태로 코딩하는 형태로 구현이 상대적으로 간편하나 재활용 및 확장성에서 클래스형 뷰에 비해 상대적으로 떨어진다.
- 클래스형 뷰(Class-based view): 뷰 로직을 클래스 형태로 코딩하는 형태로 장고에서 제공하는 제네릭 뷰를 사용할 수 있어 재활용 및 확장성의 이점이 많다.
6. template
웹 페이지마다 템플릿 파일(html)을 구현할 때 한 곳에 모아두는 디렉터리이다.
- 프로젝트 템플릿 디렉터리: TEMPLATES 설정의 DIRS 항목에 지정된 디렉터리
- 앱 템플릿 디렉터리: 각 어플리케이션 디렉터리마다 존재하는 templates/ 디렉터리
7. Admin 사이트
관리자 권한(Admin)을 통해 테이블의 내용(콘텐츠)을 열람하고 수정하는 기능을 제공하는 사이트로 필요할 때마다 원하는 데이터들을 적용할 수 있다.
setting.py 파일 내부에 있는 django.contrib.auth라고 하는 인증 기능 어플리케이션이 등록되어 있어 User와 Group 테이블을 포함해 CUD(Create, Update, Delete) 작업을 수행할 수 있다.
또한 관리자 계정을 생성하기 위해 다음과 같이 터미널에서 명령어를 입력한다.
> python manage.py createsuperuser
> Username (leaver blank to use '[계정명]'): [계정명]
> Email address: [이메일 주소]
> Password: [영문 + 숫자 조합 8글자 이상 패스워드]
> Password (again): [패스워드 확인]
> Superuser created successfully.
8. runserver
개발 과정에서 작성된 코드가 올바르게 적용되었는지 확인하기 위해 테스트를 할 수 있는 전용 웹 서버. setting.py 파일에서 ip를 지정하여 원하는 주소로 실행 할 수 있는 장점이 있다.
> python manage.py runserver 0.0.0.0:8000
'Self-Study > DJango' 카테고리의 다른 글
장고의 템플릿 계층 (0) | 2021.05.25 |
---|---|
장고의 뷰 계층 (0) | 2021.05.24 |
장고의 모델 계층 (0) | 2021.05.24 |
장고의 MVT 패턴 개요 (0) | 2021.05.21 |
Intro... (0) | 2021.05.15 |
최근댓글