지난 시간에 이어 오늘의 정리는 MySQL 통합입니다.
Django는 기본적으로 SQLite를 사용합니다.
조립되었다
다만, SQLite가 아닌 MySQL로 테스트해보고 싶어서 설정을 조금 바꿨습니다.
MySQL 통합
기본 MySQL 설치 및 설정에 대해서는 다른 블로그를 확인하십시오.
1. mysqlclient 설치하기 위해서
mysqlclient는 C 언어를 기반으로 합니다.
파이썬용 데이터베이스 커넥터(데이터베이스 커넥터).
pip install mysqlclient
2. settings.py 재설정
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "db_name", # db 이름
'USER': "user_name", # 로그인 유저명
'PASSWORD': "password", # 로그인 비밀번호
'HOST': "localhost",
'PORT': 3306,
}
}
settings.py에 있는 중요한 정보를 GitHub와 같은 공공 장소에 업로드하는 것은 위험하다는 점에 유의하십시오.
제 경우에는 “dotenv”라는 파이썬 라이브러리를 사용하여 환경 변수를 설정했습니다.
사용법은 구글링 해주세요..!
from pathlib import Path
import os
from dotenv import load_dotenv
load_dotenv(verbose=True)
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "db_name",
'USER': os.getenv("DB_USERNAME"),
'PASSWORD': os.getenv("DB_PASSWORD"),
'HOST': os.getenv("DB_HOST"),
'PORT': 3306,
}
}
3. 연결 테스트
모든 설정이 완료되면 마이그레이션하겠습니다.
문제 없이 성공하면 다음과 같이 표시됩니다.
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
No migrations to apply.
4. 하중 모델
제 경우에는 이미 MySQL에 테이블이 생성되어 있어서 models.py에 수동으로 코드를 입력했습니다.
다음 명령으로 MySQL의 테이블 구조를 확인합니다.
python manage.py inspectdb > models.py
그러면 다음과 같이 models.py가 생성됩니다.
내 앱 폴더의 빈 models.py로 교체하면 완료됩니다!
5. 연결 테스트
모든 것이 설정되면 다시 마이그레이션합니다.
문제 없이 성공하면 다음과 같이 표시됩니다.
$ python manage.py migrate
Operations to perform:
Apply all migrations: PublicDataReader, admin, auth, contenttypes, sessions
Running migrations:
Applying PublicDataReader.0001_initial... OK
더 쓰기…
참조