본문 바로가기
Web Framework/Django

[Django] Django 개요 및 환경 설정

by cogito21_python 2024. 4. 21.
반응형
 Index
 1. 환경설정 이론
 2. 환경설정 실습
 3. Django 특징
 4. Django 구조
 5. Convention
Reference

1.  환경설정 이론

환경설정 이론

가상환경 설정

# 가상환경 생성
conda create -n <가상환경명> python=<버전>

# 가상환경 목록 확인
conda env list

# 가상환경 실행
conda activate <가상환경명>

# 가상환경 종료
conda deactivate

# 가상환경 삭제
conda env remove -n <가상환경명>

 

필요한 package 설치

# conda에서 package 설치
conda install <package명>

# package 목록 확인
conda list

# python에서 package 설치
pip install <package명>

# package 목록 확인
pip list

 

2. 환경설정 실습

환경설정 실습

1. conda 설치

- Apple M2 Pro + Sonoma

 

2. 환경 설정

# 가상환경 실행
conda create -n django python=3.10
conda activate django

# Package 설치
conda install django~=4.1.0

 

 

3.  Django 특징

Django 특징

- Django: 컴포넌트들로 구성된 Framework, 느슨하게 결합되어 독립적으로 관리

 

Django3

- ASGI 지원

 

Django4

- 장고 모델에 대한 기능적 고유 제약 조건

- Redis를 사용한 데이터 캐싱 내장 지원

- zoneinfo를 사용한 기본 시간대 구현

- 새로운 scrypt 패스워드 해시 지원

- 폼에 대한 템플릿 기반 렌더링

- Python 3.6, 3.7 지원 중단

- PostgreSQL 9.6, Oracle 12.2, Oracle18c 지원 중단

 

Django4.1

- 클래스 기반 뷰를 위한 비동기 핸들러, 비동기 ORM 인터페이스

- 모델의 제약 조건의 새로운 유효성 검사 및 폼 렌더링을 위한 새로운 템플릿

- PostgreSQL 10, MariaDB 10.2 지원 중단

 

4. Django 구조

Django 구조

- Django는 Model-Template-View로 구성

- Model: 논리적 데이터 구조를 정의하는 데이터 베이스와 View 사이의 데이터 핸들러

- Template: 프레젠테이션 계층. 브라우저가 렌더링하는 일반 텍스트 템플릿 시스템 사용

- View: Model을 통해 데이터베이스와 통신하고 뷰를 위해 데이터를 템플릿으로 전송

- URL Dispatcher: URL 패턴을 분서갛여 매칭되는 패턴에 해당하는 View를 실행

 

5. Convention

Convention

Coding Convention

- Python은 PEP8을 따름.

- Package 순서: 내장 package → 설치 package → custom package

- Django Style: Template, View, Model

 

Git Branch Strategy

- main: 서비스를 배포하는 branch

- dev: 기능별 개발이 통합된 branch

- feature: 기능별 개발을 위한 branch

- release: 배포전 QA를 위한 branch

- hotfix: 배포 후 버그 발생시 수정을 위한 branch

# 현재 브랜치 확인
git branch

# 브랜치 생성
git branch <브랜치명>

# 브랜치 목록 확인
git branch -a

# 병합된 브랜치 목록 확인
git branch --merged
git branch --no-merged

# 브랜치 변경
git checkout <브랜치명>

# 브랜치 병합
git merge <병합할 브랜치명>

# 원격 브랜치 업데이트
git remote update

# 원격 브랜치 가져오기(tracking)
git checkout -t <원격 브랜치명>

 

Git Commit Message

type: Subject

body

footer

 

type

- feat: 새로운 기능 추가

- fix: 버그 수정

- docs: 문서 내용 변경

- style: 포매팅, 세미콜론 누락, 코드 변경이 없는 경우

- refactor: 코드 리팩토링

- test: 테스트 코드 작성

- chore: 빌드 수정, 패키지 매니저 설정

 

subject

- 최대 50글자, 마침표와 특수기호는 사용하지 않음.

- 영문 표기시 소문자와 과거시제 사용

 

body

- 상세히 작성, 무엇을 왜 진행했는지 설명

- 한 줄에 72자

 

footer

- 이슈 트래커의 ID 작성

- Resolves: 어떤 이슈와 관련된 커밋인지

- See also: 참고할 사항


Reference

[Text: Miniconda (Installation)]
https://docs.anaconda.com/free/miniconda/#quick-command-line-install
[Text: Django (Design philosophies)]
https://docs.djangoproject.com/en/5.0/misc/design-philosophies/
[Text: Django (Django 5.0 Release)]
https://docs.djangoproject.com/en/5.0/releases/
[Text: Udacity (Commit Style)]
https://udacity.github.io/git-styleguide/
[Text: Google (Commit Style)]
https://developers.google.com/blockly/guides/contribute/get-started/commits
[Text: Django (Coding style)]
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/
[Text: Django (JS Style)]
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/javascript/
반응형

'Web Framework > Django' 카테고리의 다른 글

[Django] Admin  (0) 2024.04.22
[Django] Model 및 Database 2  (0) 2024.04.22
[Django] Model 및 Database 1  (0) 2024.04.21
[Django] Project 및 Application  (0) 2024.04.21
[Django] 학습 참고자료  (0) 2024.03.09