[TIL / Django] Database 연동

나른한 개발자·2022년 1월 4일
0

studylog

목록 보기
20/45

이번 시간에는 django에 데이터베이스를 셋업해볼 것이다.
저번에 장고 튜토리얼은 어느정도 끝냈지만 아직 데이터베이스 연동은 건너뛰었기 때문에 이번에 해보려고 한다.

1. 커넥터 (DB API Driver) 설치

파이썬에서 MySQL과 통신하게 해주는 데이터베이스 커넥터가 필요하다고 한다.
MySQL은 mysqlclientpymsql 두 종류가 있는데 그 중 mysqlclient 를 설치해주었다.

pip3 install mysqlclient

이 드라이버는 스레드 세이프, 커넥션 풀링을 지원한다고 한다.

2. my_settings.py 생성

프로젝트를 하나 생성한 뒤, manage.py가 있는 디렉터리에 my_settings.py 파일을 하나 생성한다. 파일 내에는 다음과 같이 입력한다.

DATABASES = {
	'default': {
		'ENGINE': 'django.db.backends.mysql', # 사용할 엔진
		'NAME': 'tutorial', # DB 이름
		'USER': 'root', # 사용할 계정명
		'PASSWORD': 'pw', # 사용할 비밀번호
		'HOST': 'localhost', # 실제 DB 주소
		'PORT': '3306', # 포트 번호
	}
}
SECRET_KEY = '' # 이 부분은 프로젝트 내 settings.py 파일에 있는 SECRET_KEY를 그대로 쓰면 된다.

3. settings.py 수정

방금 작성한 my_settings.py를 import 한 후 다음의 사항을 수정한다.

import my_settings

# 기존의 DATABASES와 SECRET_KEY는 주석처리 한 뒤
#my_settings.py 내의 변수를 가리킬 수 있게 한다

DATABASE = my_settings.DATABASES
SECRET_KEY = my_settings.SECRET_KEY

4. db감지

여기까지 완료했으면 장고가 mysql을 감지하는지 알아보기 위해 다음의 명령어를 입력한다.

python manage.py inspectdb

mysql의 테이블이 보이면 성공이다 !

이 다음부터는 이전에 하던 튜토리얼과 똑같이 진행하면 된다.

💡 사실 위의 과정은 my_setttings.py 파일을 생성하지 않고 settings.py에서 해줄 수도 있다. 하지만 저렇게 따로 파일을 생성하는 이유는 보안성 때문이다.

데이터베이스에는 중요 정보들이 저장될 텐데 셋팅 파일에 데이터베이스 관련 정보들이 고스란이 적혀있으면 깃에 업로드할 때 이 부분도 함께 노출되게 된다.

이는 보안에 큰 문제를 야기할 수 있으므로 파일을 따로 생성하여 git에서는 .gitignore파일 목록에 추가하여 커밋되지 않도록 한다.




참고:
Django와 MYSQL연동하기

profile
Start fast to fail fast

0개의 댓글