[Django] Node.js


지난 시간에 이어 오늘의 정리는 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


코드 moldes.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

더 쓰기…

참조

Django 프로젝트 생성 + MySQL 통합