본문 바로가기

Python/Django

[Django] decouple은 뭐야?

728x90

github와 함께 django 프로젝트를 진행할 때 SECRET_KEY, DEBUG 등 따로 관리해야 할 정보들이 있습니다. 이때 사용하기 좋은 패키지가 바로 decouple입니다. 다음은 decouple 설치 명령어입니다.

 

pip install python-decouple

 

설치가 완료되면 프로젝트 안에 . env 또는 settings.ini 파일을 생성해줍니다. 이때 .env 파일 설정이 간단하기 때문에 해당 파일을 중심으로 설명하겠습니다. settings.ini 설정은 다음의 링크를 참고해주시기 바랍니다. 다음은 예시 파일입니다.

 

SECRET_KEY=asd88e2dq#D21d!9qfsaD@!($@das
DEBUG=True
EMAIL_HOST=smtp.gmail.com
EMAIL_POST=587
EMAIL_HOST_USER=example@gmail.com
EMAIL_HOST_PASSWORD=example
EMAIL_USE_TLS=True

 

.env 파일에 위와 같이 중요한 정보들을 넣어줍니다. 다음은 django 프로젝트의 settings.py 입니다.

 

from decouple import config
...
SECRET_KEY = config('SECRET_KEY')
...
DEBUG = config('DEBUG')
...
EMAIL_HOST = config('EMAIL_HOST')
EMAIL_POST = config('EMAIL_POST', cast=int)
EMAIL_HOST_USER = config('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')
EMAIL_USE_TLS = config('EMAIL_USE_TLS', cast=bool)

 

위와 같이 설정해주면 자동으로 파일 정보가 연결되는 것을 확인할 수 있습니다. 이런 식으로 중요한 정보를 따로 파일을 만들어서 관리해주었습니다. 마지막으로 github에 올라가지 않게 관리하기 위해서. gitignore에 다음의 코드를 추가해줍니다.

 

...
.env
...

 

. gitignore에 코드까지 추가해주면 중요한 정보를 따로 관리할 수 있게 되었습니다.

728x90

'Python > Django' 카테고리의 다른 글

[Django] Javasrcipt에서 ORM 정보 사용하기  (0) 2021.06.29
[Django] honeypot은 뭐야?  (0) 2021.06.28
[Django] pagination은 뭐야?  (0) 2021.06.24
[Django] smtpauthenticationerror 해결  (0) 2021.06.23
[Django] 프로젝트 설정  (0) 2021.06.15