본문 바로가기
💻 개발블로그/django

Django심화강의:2주차(03)(20220215)

by August.J 2022. 2. 16.

😎 환경별로 다른 설정값 사용하기

환경별로 다른 설정값을 사용하는 이유?

로컬과 실제 프로덕션 비밀번호가 같아버리면 해킹우려가 생길 수 있어 따로 관리한다.

 

환경별 다른 설정값을 주는 방법은 다양하고 정해진 답이 없다.

강의에서는 settings과 local_settings사용.


🔎 git ignore하기

.gitignore에 한 줄 추가하기

- DjangoPro/local_settings.py


🔎 local_settings.py 생성하기

- 위에서 gitignore에 추가했던 경로에 맞춰 Django폴더안에 local_settings.py 파일을 생성한다.

- local_settings.py 안에 코드 붙여넣기

더보기
더보기
# For Production
# SECRET_KEY = "django-insecure-uspu)$wi(do!x3vt#quwvlba)ne=+i=(^r$axqw1r1^6n8rn%w"
# DEBUG = False

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "sparta",
        "USER": "root",
        "PASSWORD": "22380476",
        "HOST": "localhost",
        "PORT": "3306",
    }
}

🔎 settings.py에 코드입력

- settings.py 제일 하단에 위치, 덮어쓰기용 코드 / local_settings가 git에 없어도 실행될 수 있도록한다.

- try, except문을 사용하여 git으로 받을 경우 local_settings가 없을 경우에도 장고가 실행될 수 있도록 한다.

settings.py만 있으면 위의 코드를 사용하고, local_settings가 있다면 해당내용으로 덮어쓰기한다.

 

- DjangoPro.local_settings > 절대경로 사용, local_settings와 같이 상대경로 사용시 버그 발생 가능

- import * : 전체 import

더보기
더보기
try:
    from DjangoPro.local_settings import *
except ImportError:
    pass