지금까지 Django 학습한 내용을 바탕으로 정리를 해보려 한다.
목차 |
1. 가상환경 설정 (pyenv)
2. poetry 설정 및 Django 설치
3. Django 설정 (PyCharm)
[작업 환경]
MacOS, PyCharm
pyenv, poetry
Python, Django
가상환경 설정 (pyenv) |
1. 작업 폴더 생성
mkdir <폴더명> # 폴더 생성
cd <폴더명> # 폴더 접근
2. 가상환경 설치하기
pyenv virtualenv <파이썬 버전> <가상환경이름>
pyenv virtualenv 3.12.1 blog
2-1. 해당 버전의 파이썬이 없는 경우
pyenv install 3.12.1
pyenv virtualenv 3.12.1 blog
2-2. 가상환경 삭제
pyenv uninstall <가상환경이름>
pyenv uninstall blog
3. 설치한 가상환경 실행하기
pyenv local <가상환경이름>
pyenv local blog
4. python 버전 확인
python --version
📌 파이썬 가상환경을 사용하는 이유?
프로젝트마다 요구되는 버전과 패키지만을 설치하여 구성하기 위함이다.
예를 들어, 프로젝트 A와 B는 서로 다른 Python 버전과 Django 버전의 환경에서 동작될 때,
· 프로젝트 A 가상환경에는 Python 3.13버전과 Django 3.2버전 사용
· 프로젝트 B 가상환경에는 Python 2.13버전과 Django 2.2버전 사용
위의 예시와 같이 각 프로젝트마다 독립적인 가상환경을 생성하여 사용할 수 있다.
[특징]
1. 프로젝트 간 충돌 방지
: 독립적인 가상환경 제공하여 프로젝트간 충돌을 방지한다.
2. 시스템 전역 환경 오염 방지
: 전역 환경에 설치하면, 불필요한 패키지로 인해 프로젝트의 환경이 복잡해지고 관리가 어렵다.
또한, 패키지를 잘못 삭제하거나 변경하면 다른 프로젝트에 영향을 미칠 수 있다.
가상환경을 사용하면 시스템 전역 및 다른 가상환경과 독립적으로 동작할 수 있다.
3. 프로젝트 이식성 향상
: 프로젝트를 다른 시스템으로 옮길 때,
가상환경 내 설치된 패키지 목록을 이용하여 동일한 실행 환경을 쉽게 재현할 수 있다.
poetry 설정 및 Django 설치 |
1. poetry 초기화
- package name 설정(필수는 아님)하고 웬만하면 다 enter로 넘기면 된다.
- 초기화 완료되면 경로에 'pyproject.toml' 생성이 된다. (터미널 명령 'ls'로 확인 가능)
poetry init
2. Django 설치
poetry add django
⭐️ 장고 버전별 추가
예시)
poetry add django==5.0.4 # 5.0.4 버전 설치
poetry add django~=5.0 # 5버전 중 제일 최신 버전 설치
📌 poetry란?
파이썬 프로젝트 관리를 위한 종합적인 도구이다.
패키지 설치, 의존성 관리 외에도 가상환경 생성, 배포까지 파이썬 프로젝트를 체계적으로 관리할 수 있게 도와준다.
'pyproject.toml'파일로 설치 패키지를 자동으로 관리한다.
쉽게, "파이썬 프로젝트 관리자" 라고 보면 된다.
Django 설정 (PyCharm) |
1. Django 프로젝트(project) 설정
django-admin startproject config <작업경로>
django-admin startproject config . # 현재경로
django-admin startproject config blog # blog폴더
2. PyCharm에서 Django 설정
2-1. 파이썬 인터프리터 설정
- 설정창 실행 (cmd + ,)
- 프로젝트 : <프로젝트명> → Python 인터프리터 → 인터프리터 추가 → 로컬 인터프리터 추가
- 환경 : 기존항목 선택
- Python 경로 : 폴더 버튼 클릭 → 가상환경경로/bin/python 선택 후 확인
⭐️ 가상환경경로 : /Users/<username>/.pyenv/versions/<가상환경명>/bin/python
2-2. 파이썬 인터프리터 설정
- 자동으로 설정되는 경우도 있지만, 그렇지 않은 경우 아래와 같이 설정하면 된다.
- 설정 → 언어 및 프레임 워크 → Django
- Django 지원 활성화 : 체크
- Django 프로젝트 루트 : 작업경로
- 설정 : 작업경로/config/settings.py
- 스크립트 관리 : 작업경로/manage.py
3. Django 앱(app) 생성
python manage.py startapp <앱 이름>
python manage.py startapp blog
⭐️ 앱 생성 시, config/settings.py에 꼭 생성한 앱을 추가해주어야 한다.
config/seettings.py에 기본적으로 INSTALLED_APS = [] 에 작성해주거나
기능별로 분리 (DJANGO_APPS, OWN_APPS, THIRD_PARTY_APPS)하여 작성할 수 있다.
📌 이때, 분리한 리스트변수들은 INSTALLED_APPS로 다시 받아줘야한다!
Django가 INSTALLED_APPS 리스트변수로 확인하기 때문이다.
4. Django 유틸리티 패키지 설치
4-1. ipython 설치
poetry add ipython
⭐️ ipython의 경우 config/settings.py에 추가 안 해도 된다.
🤷♂️ why? django 앱이 아니기 때문! shell 개선 도구일 뿐
4-2. django-extensions 설치
poetry add django-extensions
⭐️ django-extensions의 경우 config/settings.py에 추가해줘야 한다.
# 기본버전
INSTALLED_APPS = [
'django_extensions', # _로 연결해줘야한다!
]
# 분리버전
THIRD_PARTY_APPS = [
'django_extensions',
]
INSTALLED_APPS = DJANGO_APPS + OWN_APPS + THIRD_PARTY_APPS
📌 ipython, django-extensions란?
ipython : 기본 shell 보다 강력한? UI
django-extensions : Django 개발 편의 기능 모음 (URL보기, shell 개선 등)
[기존 shell]
- python manage.py shell 로 실행
- 단순한 콘솔 (UI가 몹시 불친절?함)
- 명령 작성이 불편 : Tab 안 먹힘.... 등
- django import 직접 작성
[ipython 설치]
- python manage.py shell 로 실행
- 기존 shell의 업그레이드 : 컬러링, 탭 자동완성, 히스토리 등 친절해진? UI
- django import 직접 작성
[ipython + django-extensions 설치]
- python manage.py shell_plus 로 실행
- 훨씬 더 편하고 빠르게 작성 가능
- django import 없이 바로 사용 가능 (자동 import 해줌)
5. templates, static, media 경로 지정 (config/settings.py)
5-1. templates 경로 지정
- 작업경로에 templates 폴더 생성
- 'DIRS' : [BASE_DIR / 'templates'], 입력
5-2. static 경로 지정
- 작업경로에 static 폴더 생성
STATIC_URL = 'static/'
STATIC_DIR = BASE_DIR / 'static'
STATICFILES_DIRS = [
STATIC_DIR
]
STATIC_ROOT = BASE_DIR / '.static_root'
5-3. media 경로 지정
- 작업경로에 static 폴더 생성
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'
'Web Backend > Django' 카테고리의 다른 글
[Django] Django 학습 정리 - Django ORM (0) | 2025.03.29 |
---|---|
[Django] Django 학습 정리 - Django Form (0) | 2025.03.29 |
[Django] Django 학습 정리 - FBV(Function Based View)와 URL (0) | 2025.03.29 |
[Django] Django 학습 정리 - 템플릿 문법 정리 (Jinja, extends, block) (0) | 2025.03.29 |
[Django] Django 학습 정리 - Model 정의 및 Migration (0) | 2025.03.28 |
댓글