728x90
이번 사이드 프로젝트를 위하여 Django와 postgreSQL을 연동할 필요가 있었다.
우선 준비물은 이렇게 구성되었다.
준비물
- Python 3 버전 이상
- Django
- PostgreSQL
- psycopg2
- dotenv
https://docs.djangoproject.com/ko/4.0/intro/tutorial01/ <- Django Tutorial
Django 프로젝트는 이미 만들었는 가정 하에 DB와 연동하는 과정만 작성해 보겠다.
우선 PostgreSQL을 설치해야 한다.
PostgreSQL 설치
설치 가이드 <32비트, 64비트 확인 후 다운>
Database 생성 - pgadmin4
pgadmin4에 접속한다.
여기서 기본 관리자 계정으로 진행할 수 있지만 계정을 하나 더 만들어주겠다.
권한 설정은 원하는 만큼 열어주면 된다.
- 로그인 가능여부
- 슈퍼유저 여부
- 사용자 생성 가능 여부
- DB 생성 가능 여부
- 부모로부터 권한을 물려받는지 여부
- 복제 또는 백업 여부
이후 계정이 생성되었으면 DB를 생성하면 된다.
또한 DB 이름과 함께 아래 Owner도 만들어주면 계정으로 변경하면 된다.
Django 연동
settings.py 수정을 수정하기 전에 dotenv를 설정하고 넘어가겠다.
스터디 혹은 사이드 프로젝트이기 때문에 그냥 DATABASES에 평문으로 적어 넘어가도 되겠지만 기본적으로
내부 내용들은 밖으로 유출되면 안 되기 때문에 작업을 진행한다.
우선 Dotenv 설치
pip install django-dotenv
.env파일 생성 및 환경변수 작성
KEY="value"
DB_USER=""
DB_PASSWORD=""
DB_HOST=""
DB_PORT=""
DB_ENGINE=""
.gitignore에 반드시 .env를 추가할 것!
.env에 적힌 환경변수 가져와서 적용
import dotenv
if __name__ == "__main__":
dotenv.read_dotenv()
main()
manage.py에 위 내용 추가
이후 환경변수를 사용할 파일 내에서 아래 내용과 같이 사용
import os
os.environ.get("key")
settings.py 수정
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
'default': {
'ENGINE': os.environ.get("DB_ENGINE"),
'NAME': 'P2P',
'USER': os.environ.get("DB_USER"),
'PASSWORD': os.environ.get("DB_PASSWORD"),
'HOST': os.environ.get("DB_HOST"),
'PORT': os.environ.get("DB_PORT"),
}
}
위 주석처리되어 있는 코드가 기존 DATABASES 코드이다.
psycopg2 설치
- pip install psycopg2
- python -c "import psycopg2"
마이그레이션 및 관리자 생성
- python manage.py migrate
- python manage.py createsuperuser --username 사용자명
- python manage.py runserver
연동 확인
DB -> Schema -> Tables 확인
'Python > Django' 카테고리의 다른 글
Django Rest Framework란? (0) | 2022.04.14 |
---|---|
Django Rest_framework 게시판 만들기 (0) | 2022.03.15 |
Django + PostgreSQL CRUD 만들기 (0) | 2022.02.23 |