Python/django

[Django ] env๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ settings๊ตฌ์กฐ ์ปค์Šคํ…€ - YEOL

tenchoi 2022. 8. 22. 16:13

๐Ÿ“€ ํ™˜๊ฒฝ 

Mac M1
Python 3.9
VsCode

๐Ÿ”– ๊ฐœ์š”

Django์˜ env๊ฐ’์„ Prod, Dev์—์„œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด settings ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค!

๐Ÿ“’ ๋ชฉ์ฐจ

  • ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ
  • ๊ฒฐ๊ณผ ํ™•์ธํ•˜๊ธฐ

 

- ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

django-admin startproject config . 
์œ„์˜ ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. manage.py๊ฐ€ ๋ฐ–์œผ๋กœ ๋น ์ง‘๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  django-admin startapp ์•ฑ ์ด๋ฆ„  ๋ช…๋ น์–ด๋กœ app์„ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ๊ตฌ์กฐ๊ฐ€ ๊ฐ€๋…์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

pip install python-dotenv ๋ช…๋ น์–ด๋กœ env lib๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
. env ํŒŒ์ผ์„ manage.py์™€ ๋™์ผํ•œ ํด๋”์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

#Local DB
DB_NAME_DEV = "yeol_dev"
DB_NAME_PROD = "yeol_prod"

 

configํด๋” ๋‚ด๋ถ€๋ฅผ ์‚ดํŽด๋ด…์‹œ๋‹ค. settings.py๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. settings ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.
settings.py๋Š” base.py๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๊ณ  ํด๋” ์•ˆ์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
ํ•ด๋‹น ํด๋” ๋‚ด์— ์•„๋ž˜์™€ ๊ฐ™์€ prod.py, dev.py๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

ํŒŒ์ผ๋ช… -> dev.py

from .base import *
from dotenv import load_dotenv
load_dotenv(verbose=True) #.env๊ฐ€ ๋ˆ„๋ฝ์ผ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅํ•˜๋Š”์˜ต์…˜


DB_NAME = os.environ.get("DB_NAME_DEV")
ํŒŒ์ผ๋ช… -> prod.py

from .base import *
from dotenv import load_dotenv
load_dotenv(verbose=True) #.env๊ฐ€ ๋ˆ„๋ฝ์ผ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅํ•˜๋Š”์˜ต์…˜


DB_NAME = os.environ.get("DB_NAME_PROD")

 

- ๊ฒฐ๊ณผ ํ™•์ธํ•˜๊ธฐ

์„ธํŒ…์ด ๋๋‚ฌ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด settings์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ์‹œ๋‹ค.
settings๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ๊ฐ€์ ธ์˜ค๋ฉด prod์™€ dev๋Š” ์‹คํ–‰ํ•  ๋•Œ์˜ setting๊ฐ’ ๋ณ€๊ฒฝ๋งŒ์œผ๋กœ ์ปจํŠธ๋กค์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ €๋Š” API๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด postman์„ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ณตํ†ต์˜ ์„ค์ •์€ base.py์—์„œ ์ปจํŠธ๋กคํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด local, dev, prod ํ™˜๊ฒฝ ์–ด๋””์—์„œ๋“  ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐ŸŒŸ ๊ทผ๊ฑฐ ์žˆ๋Š” ์กฐ์–ธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ์‹คํ•œ ์ฝ”๋”ฉ ํ•˜์„ธ์š”.