Django

Django 프로젝트 초기 구성

조회: 207 댓글: 0개 2023.11.06 15:42 월요일

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
captcha