장고 설치
$ pip3 install Django
postgres와 파이썬을 연결시켜줄 psycopg2 설치
$ pip3 install psycopg2
설치에서 wheel 에러가 나시는 분들은 아래 방법으로 설치
$ pip3 install psycopg2-binary
.env 파일을 읽기 위해
$ pip3 install python-dotenv
새로운 프로젝트 디렉토리 생성
$ django-admin startproject myproject
앱 생성
$ python3 manage.py startapp myapp
처음에 들어가시면 왼쪽에 Servers 에 아무것도 없을겁니다. 그림에 표시된 Add New Server 클릭하시고,
Name은 기억하기 쉬운 이름으로 하면 됩니다. 저는 django_postgres로 했습니다.
제가 한참 찾은 부분은 Host name/address 였는데, localhost로 지정하시면 알아서 로컬호스트에 접속됩니다.
Port는 디폴트 값 사용하시고,
Maintenance_db = postgres,
Username은 본인이 원하시는 이름,
Password 또한 본인 지정입니다.
이제 서버 만들기는 끝났습니다. 정말 쉽죠?
아래 이미지는 기본 값으로 local_postgres가 만들어졌고 데이터 베이스 이름도 지정됐습니다.
로컬 서버를 장고 앱과 연동합니다.
myapp/settings.py에 들어가시면,
DATABASES 라는 해쉬테이블이 있습니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
위 값을 아래와 같이 바꿔줍시다.
from dotenv import load_dotenv
import os
load_dotenv()
...
DATABASES={
'default':{
'ENGINE':'django.db.backends.postgresql_psycopg2',
'NAME':'django_postgres',
'USER':'postgres',
'PASSWORD':os.getenv("POSTGRES_PW", None),
'HOST':'localhost',
'PORT':'5432',
}
}
.env파일을 쓰는 이유는 보안을 위해 django_key, postgres_pw 같은 값을 저장하기 위해서입니다.
제일 상위 디렉토리에 .env 파일을 만드시면 됩니다. 그리고 파일 안에
DJANGO_SECRET_KEY = "YOUR_DJANGO_KEY"
POSTGRES_PW = "YOUR_PW"
해주시면 load_dotenv()를 통해 variable을 불러올 수 있습니다.
GitHub에 올리실때 유용하니 습관처럼 해주시면 좋습니다!
물론 .env는 .gitignore에 추가하셔야합니다.
장고 자체적으로도 dotenv가 가능하지만, 저는 그냥 익숙했던 python-dotenv를 사용했습니다.
pip3 install django-dotenv
이제 끝났습니다!
$ python3 manage.py migrate
이 커맨드 하나면 postgres와 django는 알아서 default table을 만듭니다.
이런 커맨드와 함께
아름다운 데이터 베이스가 나옵니다.
여기까지 postgreSQL과 django를 연결하는 방법이었습니다!