본문 바로가기
Web Backend/Django

[Django] Django 학습 정리 - Django 초기셋팅

by 요호유후 2025. 3. 28.
반응형

 

지금까지 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'

 

반응형

댓글