Django 기초 - virtualenv로 프로젝트 구성하기

ID짱재·2021년 7월 12일
0

Django

목록 보기
1/43
post-thumbnail

🌈 프로젝트 구성

🔥 virtualenv 가상 환경 설정

🔥 Django 설치

🔥 Project 및 App 생성

🔥 settings.py 맛보기


1. virtualenv 가상 환경 설정

  • 프로젝트 시작 전 가상 환경이 필요한 이유는 프로젝트별로 사용하는 패키지 버전이 다를 경우 충돌이 발생하기 때문
  • virtualenv 설치 : 🔍 pip3 install virtualenv
  • 가상 환경 생성 : 🔍 virtualenv [가상환경 이름] ⇢ ex) virtualenv z_env
  • 현재 위치에 z_env라는 디렉토리가 생성되고, 가상환경 사용할 수 있음
  • 가상 환경 활성화 : 🔍 source [가상환경 이름]/bin/activate ⇢ ex) source z_env/bin/activate
  • 비활성화 시키는 방법 : 🔍 deactivate 또는 vscode 종료

2. Django 설치

  • 가상환경이 활성화된 상태에서 django를 설치하여 프로젝트별로 각각의 개발 환경을구축함
  • Django 설치 방법
    • 🔍 pip3 install django 👈 최신 버전 django 설치
    • 🔍 pip3 install "django~=1.11.0" 👈 1.11.0 버전 django 설치
    • 🔍 pip3 install "django<2" 👈 2이하 버전의 django 설치
  • 설치된 Django 버전 확인 : 🔍 django-admin --version

3. Project 및 App 생성

1) Project 생성

  • Project는 하나의 프로그램 단위로 여러개의 Apps의 기능이 합쳐서 웹을 구축함
  • Django가 설치되면 "django-admin" 이라는 명령어를 통해 Project 및 App을 생성
  • 🔍 Project 생성 방법1 : django-admin startproject [프로젝트명]
  • 🔍 Project 생성 방법2 : django-admin startproject [프로젝트명] .
  • 이 두 방법의 차이는 현재 디렉토리 안에 프로젝트 디렉토리를 생성하고, 그 안에 다시 프로젝트 관련 폴더를 생성할지, 아니면 깊이를 주지 않고 바로 생성할지에 대한 depth의 차이임

2) App 생성

  • Project 디렉토리(community) 안에 App을 생성하기 위해 프로젝트로 경로 이동
  • Project 경로 이동 : 🔍 cd community
  • App 생성 방법 : 🔍 django-admin startapp [앱이름] ⇢ django-admin startapp board!

3) App 등록

  • Model은 apps.py에 종속되어 있기 때문에 DB의 실체가 될 테이블 인식시키기 위해서는 APP 등록이 필요함
  • settings.py의 "INSTALLED_APPS" 영역에서 App을 등록할 수 있음
# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'board' # 👈 App 등록
]

4. settings.py 맛보기

  • 모든 ip가 접속할 수 있도록 허용하려면, ALLOWED_HOSTS 에 '*' 설정
ALLOWED_HOSTS = ['*'] # 👈 화이트리스트 기반
  • TIME_ZONE 설정은 Default 값으로 'UTC'로 되어있으나, 한국 시간대로 수정하려면 'Asia/Seoul'로 수정
  • Django에서는 정적파일(css, img)을 다룰 때, 별도의 static 디렉토리를 만들어 저장하여 관리함
  • 이에 static 파일들을 html에서 로드하기 위해서 경로를 설정해주어야 함
  • 리스트로 작성할 수도있고, 튜플로 사용할 수 도 있음
    • 🔍 STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
profile
Keep Going, Keep Coding!

0개의 댓글