(출처 - https://ko.wikipedia.org/wiki/PostgreSQL)
Django는 다른 데이터베이스와 연동을 지원함으로, 데이터 분석 및 처리를 위해서는 다른 데이터 베이스를 사용하는 것이 좋다.
본 본문에서는 상대적으로 데이터처리에 효과적인 PostgreSQL과 Django를 연동한다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'project',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
pip install django-environ
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_HOST=
DB_PORT=
# envrion impot
import environ
env= environ.Env()
environ.Env.read_env(BASE_DIR / '.env')
# DB 정보 불러오기 밀 설정
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': env('DB_NAME'),
'USER': env('DB_USER'),
'PASSWORD': env('DB_PASSWORD'),
'HOST': env('DB_HOST'),
'PORT': env('DB_PORT'),
}
}
위 위치에 secrets.json 파일 생성
setting.py에서 시크릿키 복사해서 아래 파일에 붙여넣기
project/app/secrets.json
{
"SECRET_KEY" : "<시크릿키>"
}
from pathlib import Path
from django.core.exceptions import
# secret key 설정
import os, json
ImproperlyConfigured
# json 파일 위치 설정
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
secret_file = os.path.join(BASE_DIR, 'secrets.json')
#json 파일 열기
with open(secret_file) as f:
secrets = json.loads(f.read())
def get_secret(setting):
#비밀 변수를 가져오거나 명시적 예외를 반환한다.
try:
return secrets[setting]
except KeyError:
error_msg = "Set the {} environment variable".format(setting)
raise ImproperlyConfigured(error_msg)
SECRET_KEY = get_secret("SECRET_KEY")
pip install psycopg2
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'psycopg2',
]
python manage.py migrate
pgadmin4에서 해당 DB의 table을 보면 django에서 만든 테이블이 생겨난 것을 볼 수 있다.
sqlite vs postgreSQL :
psycopg2 :
pysc
secret key