Django에서 pymysql을 이용해 mysql 연동하기

2020.09.24

현재 글 작성 후 오랜 시간이 지났기 때문에 잊고 있었는데 현재는 pymysql을 사용하는 것 보다 mysqlclient를 쓰는게 성능상 좋다고 합니다. https://pypi.org/project/mysqlclient/

왜인지 모르겠지만 MySQL에서 공식으로 제공하는 모듈은 python2만 지원하는 것 같습니다.

그래서 제가 옛날부터 사용해왔던 pymysql을 이용해서 Django에 MySQL연동하는 법을 포스팅하겠습니다.

Django와 Python은 이미 깔려있다고 가정하고 설명드리겠습니다.

먼저 윈도우든 리눅스든 pymysql을 설치합니다.

pip install pymysql

그리고 Django에 settings.py파일을 보시면

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

이런식으로 데이터 베이스 정보를 입력하는 부분이 있습니다. 여기를 수정해서 우리의 데이터베이스와 연결하는 정보를 넣어주어야 하는데요

밑에 내용처럼, 먼저 맨 위에 pymysql을 임포트해줍니다. 그리고 DATABASES를 수정해주세요.

import pymysql

pymysql.install_as_MySQLdb()

...


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_locker', # DB명
        'USER': '', # 데이터베이스 계정
        'PASSWORD': '', # 계정 비밀번호
        'HOST': '', # 데이테베이스 주소(IP)
        'PORT': '', # 데이터베이스 포트(보통은 3306)
    }
}

이렇게 수정하시고

콘솔이나 커맨드라인을 여셔서 해당 Django 프로젝트 폴더로 갑니다. manage.py가 있는 폴더에서

python manage.py makemigrations

python manage.py migrate

차례대로 실행합니다.

makemigrations에서 에러가 나는경우는 settings.py에서 어떤 오류가 있는 것이니 오류 메세지를 잘 확인해주세요

migrate을 실행하면 DB에 대항 테이블이 생성이 될 것 입니다. 이제 Django에서 DB와 연동이 되었습니다. 열심히 코딩하는일만 남았네요 😀

Django에서 pymysql을 이용해 mysql 연동하기”의 1개의 생각

댓글 남기기