여름의 서재
[Django] window 환경에서 장고와 postgreSQL 연동하기 본문
💡 왜 기존의 sqlite3가 아닌 postgreSQL을 이용할까?
: sqlite3로도 충분히 장고 공부가 가능하지만 이건 로컬용으로 적합하다.
그래서 규모가 커지는 웹 프로젝트를 하기 위해서는 다른 DBMS를 이용해야 한다.
그 중에서도 postgreSQL를 이용한 이유는 무료인데 기능과 성능면에서 매우 훌륭한 DBMS이기 때문이다.
이제부터 postgreSQL을 설치하고 python으로 연동하는 과정을 순서대로 나열할것이다.
고대로 따라하기만 하면 된다!
# 1. postgreSQL 설치하기
PostgreSQL
The world's most advanced open source database.
www.postgresql.org
1. 사이트에 들어가서 다운로드 버튼을 클릭한다.
2. 자신의 운영체제에 맞는 버튼을 클릭한다.
3. Download the installer 문장을 클릭한다.
4. 자신의 운영체제와 버전에 맞는 버튼을 클릭한다.
5. 그럼 설치 exe 파일이 다운로드된다!
설치 프로그램에서 기본값을 따로 바꿔주지 않고 계속 next 버튼을 클릭하다가 password를 설정하는 단계에서는 자신이 설정한 비밀번호는 꼭 기억해두자! pgadmin 4을 실행시키는 비밀번호가 된다. 마지막 단계에서 stack builder 체크박스는 해제하고 finish 버튼을 누른다.
# 2. DB 만들기
1. pgadmin 4를 실행
: 그럼 아래와 같이 뜨는데 비밀번호란에 설치할 때 설정해줬던 비밀번호를 입력한다.
2. 왼쪽의 servers 글자를 두번 클릭
: PostgreSQL 하나가 뿅 하고 아래 생긴다.
3. 슈퍼 유저 생성
- Login/Group Roles 클릭 > create > Login/Group Role... 클릭
- Gerneral에서 name 설정해주고, Definition에서 password 설정하고, privileges 눌러서 권한 모두 주기
(슈퍼 유저니까!)
4. DB 생성
- databases 클릭 > create > database... 클릭
- general에서 db이름 설정하고 Owner를 방금 만들어준 슈퍼 유저로 바꿔주기
# 3. Django와 연동하기
1. psycopg2 설치하기
: 터미널에 아래와 같이 적기
pip install psycopg2
python -c "import psycopg2"
2. settings.py에 아래와 같이 입력해준다.
: 방금 만들었던 db 이름과 user 이름, 비밀번호를 입력해주시면 됩니당
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'DB 이름',
'USER': '슈퍼유저 이름',
'PASSWORD': '마스터 비밀번호',
'HOST': 'localhost',
'PORT': '5432',
}
}
📌 config 이용해서 key와 password 숨기기
: 중요한 정보들은 다른 사람들에게 노출되면 안되기 때문에 config를 이용해주는 게 좋다!
1. config 함수를 사용해주기 위해 python-decouple 을 설치해야 한다. 터미널에 아래와 같이 입력!
pip install python-decouple
2. app과 같은 level에서 settings.ini 라는 파일을 만들어준다.
(.gitignore 파일에 추가해서 git에 안올라가도록 해주기!)
# settings.ini
[settings]
# Django
DJANGO_SECRET_KEY=sajlrfjawiefjl;d
# PostgreSQL
DB_USER=user
DB_PASSWORD=password
-> 이곳에 숨기고 싶은 것들을 적는다. 단, 문자일지라도 꼭 따옴표는 빼고 적어야한다!!
3. settings.py 를 아래와 같이 수정해준다.
# settings.py
from decouple import config
SECRET_KEY = config('DJANGO_SECRET_KEY')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'pjt',
'USER': config('DB_USER'),
'PASSWORD': config('DB_PASSWORD'),
'HOST': 'localhost',
'PORT': '5432',
}
}
2. 마이그레이션 & 서버 실행
: 터미널에 아래와 같이 적기
python manage.py migrate
python manage.py runserver
📌 django.db.utils.OperationalError
: migrate를 했는데 위와 같은 에러가 발생한다면 settings.py에 적은 db의 정보가 잘못된 것이다.
settings.py의 DATABASES 정보를 다시 한번 확인해주자. (settings.ini까지)
3. pyadmin4에서 해당 데이터베이스의 Schema > Tables에서 Django와 연동되었는지 확인
-> 연동 성공!!
'Skill > Django' 카테고리의 다른 글
[Django] 할 일 리스트 만들기_Todo (0) | 2021.10.25 |
---|---|
[Django] 팔로우 기능 구현하기_Follow (0) | 2021.10.24 |
[Django] 좋아요 기능 구현하기_Like (1) | 2021.10.24 |
[Django] 댓글 기능 구현하기_Comment (0) | 2021.10.22 |
[Django] 게시글에 User 정보 넣기_Article-User (0) | 2021.10.22 |