[TIL / Django] Database 연동
이번 시간에는 django에 데이터베이스를 셋업해볼 것이다.
저번에 장고 튜토리얼은 어느정도 끝냈지만 아직 데이터베이스 연동은 건너뛰었기 때문에 이번에 해보려고 한다.
1. 커넥터 (DB API Driver) 설치
파이썬에서 MySQL과 통신하게 해주는 데이터베이스 커넥터가 필요하다고 한다.
MySQL은 mysqlclient
나 pymsql
두 종류가 있는데 그 중 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파일 목록에 추가하여 커밋되지 않도록 한다.
Author And Source
이 문제에 관하여([TIL / Django] Database 연동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@newdana01/TIL-Django-Database-연동저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)