Django와 PostgreSQL 연동

2022. 2. 23. 00:04·Python/Django

이번 사이드 프로젝트를 위하여 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비트 확인 후 다운>

 

Install PostgreSQL

Summary: in this tutorial, you will step by step learn how to install PostgreSQL on your local system. PostgreSQL was developed for UNIX-like platforms, however, it was designed to be portable. It means that PostgreSQL can also run on other platforms such

www.postgresqltutorial.com


Database 생성 - pgadmin4

pgadmin4에 접속한다.

pgadmin 화면

여기서 기본 관리자 계정으로 진행할 수 있지만 계정을 하나 더 만들어주겠다.

 

계정 생성
사용자 이름 설정
비밀번호 설정

 

권한 설정은 원하는 만큼 열어주면 된다.

  • 로그인 가능여부
  • 슈퍼유저 여부
  • 사용자 생성 가능 여부
  • DB 생성 가능 여부
  • 부모로부터 권한을 물려받는지 여부
  • 복제 또는 백업 여부

권한설정

 

이후 계정이 생성되었으면 DB를 생성하면 된다.

 

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
'Python/Django' 카테고리의 다른 글
  • Django Rest Framework란?
  • Django Rest_framework 게시판 만들기
  • Django + PostgreSQL CRUD 만들기
요술공주밍키
요술공주밍키
조금씩이라도 꾸준히..
  • 요술공주밍키
    삽질의흔적
    요술공주밍키
  • 전체
    오늘
    어제
    • 분류 전체보기 (139)
      • Java (42)
        • Spring Boot (14)
        • Spring Boot 게시판 (14)
        • 공중화장실 찾기 (4)
        • 쇼핑몰 (8)
      • JavaScript (8)
        • NodeJS (2)
      • Python (5)
        • Django (4)
      • Server (10)
        • Docker (4)
        • K8S (0)
        • Jenkins (1)
      • 알고리즘 (24)
        • 프로그래머스 (19)
        • 백준 (5)
      • Etc (21)
        • 개발 팁 (1)
      • 일상 (27)
        • 독서 포스트 (25)
        • 회고록 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
요술공주밍키
Django와 PostgreSQL 연동
상단으로

티스토리툴바