Django 프로젝트 초기 구성
1. Python 가상 환경 세팅
우선 가상 환경 파일들이 위치할 폴더를 생성해준다.
cd /
mkdir venvs
cd venvs
그 다음 원하는 이름으로 가상 환경을 만든다.
python -m venv {{프로젝트 이름}}
간편하게 가상 환경으로 접속 할 수 있게 해주는 cmd 파일을 만들어준다.
@echo off
cd C:/projects/{{프로젝트 이름}}
C:/venvs/{{프로젝트 이름}}/Scripts/activate
{{프로젝트 이름}}.cmd
마지막으로 cmd 파일을 어디서든 실행 할 수 있게 c:\venv의 환경 변수 path 설정을 하면 끝.
2. Django 프로젝트 생성
프로젝트 폴더를 만들고 안에 들어가서 'requirements.txt'를 만들고 아래의 내용을 추가한다.
Django==4.2.4
mysqlclient
django-environ
Django는 말 그대로 Django다.
mysqlclient는 Django가 mysql이나 mariadb와 연동하는데 필요하다.
django-environ는 밑에서 다룰 예정이다.
이후 다음 명령어를 실행한다.
pip install -r requirements.txt
requirements.txt 안에 적혀있는 python 패키지들을 다운 받은 것, 즉 Django 4.2.4를 다운 받았다.
그 다음 Django 프로젝트를 생성한다.
django-admin startproject config .
3. Django 환경 변수 설정
프로젝트의 로컬 환경과 운영 환경의 설정들을 분리하기 위해 환경 변수 설정을 해준다.
우리는 앞서 requirements.txt에 다음과 같은 모듈을 적었었다.
django-environ
이 모듈을 설치해놔야 밑에 나와있든 작업들을 수행 가능하다.
이후 {{프로젝트 이름}}_local.env 파일을 만들고 아래의 내용을 기입한다.
SECRET_KEY=''
DEBUG=True
ALLOWED_HOSTS=*
#DATABASES
NAME=''
USER=''
PASSWORD=''
HOST=''
PORT=''
내용은 알아서 잘 채운다.
config/settings.py에 아래의 내용을 추가한다.
import os
import environ
temp = os.environ.setdefault('DJANGO_ENV', 'ww2_local.env')
env = environ.Env(DEBUG=(bool, True))
environ.Env.read_env(
env_file=os.path.join(BASE_DIR, temp)
)
"""
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
ALLOWED_HOSTS = env('ALLOWED_HOSTS').split(',')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': env('NAME'),
'USER': env('USER'),
'PASSWORD': env('PASSWORD'),
'HOST': env('HOST'),
'PORT': env('PORT'),
'OPTIONS' : {
'charset' : 'utf8mb4'
}
}
}
"""
4. 기본 settings.py 설정
'DIRS': [BASE_DIR / 'templates'],
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / 'static',
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
5. urls.py 설정
테스트 환경에서 운영 환경과 동일한 static, media 경로를 사용하기 위한 추가 코드.
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
6. Git 추가
git init
.gitignore 파일 작성
.idea
*.pyc
*.env
__pycache__
git add *
git commit -m "프로젝트 최초 커밋"
git config --global user.email "홍길동@gmail.com"
git config --global user.name "홍길동"
7. GitHub 연결
git remote add origin https://github.com/sisu-01/ww2.git
git branch -M main
git push -u origin main