프레임워크/Django

Django에서 mysql 연동하기

멍토 2020. 9. 13.

Django에서는 기본데이터베이스가 sqlite로 설정되어있다.

특정상황에서는 경량화된 sqlite가 아닌 mysql과 같은 데이터베이스를 사용해야 할 수 있다.

그래서 Django와 MYSQL을 연동하면서 경험했던걸 적어보려 한다.

 

1. mysqlclient 설치하기

 pip install mysqlclient

2. django settings.py 수정하기

  • settings.py에 있는 DATABASES 를 수정해줘야 한다.
  • 아래는 공식문서에 적혀있는 내용이다.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
  • 그리고 옵션에 아래와 같이 추가해야 한다고 적혀있다.
SET sql_mode='STRICT_TRANS_TABLES'
  • 나는 env파일을 사용하여 적용해 보았다.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': env('NAME'),
        'USER': env('DB_USER'),
        'PASSWORD': env('PASSWORD'),
        'HOST': env('HOST'),
        'PORT': env('PORT'),
        'OPTIONS': {
            'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
        }
    }
}


# .env 파일
NAME=DBNAME
DB_USER=DBUSER
PASSWORD=DBUSERPASSWORD
HOST=localhost
PORT=3306

3. 실행하기

  • DB를 실행하고 django를 동작시키면 연결되는 것을 확인할 수 있다.
  • DB를 연결하기 전에 DB는 먼저 생성해야 하는점을 유의해야 한다.

 

트랜잭션과 관련된 정보는 공식문서를 보면 확인이 가능하다.

참조 : https://docs.djangoproject.com/en/3.1/ref/databases/#mysql-notes

'프레임워크 > Django' 카테고리의 다른 글

AWS EC2 gunicorn을 이용한 django 배포하기  (0) 2020.09.12
장고를 왜 사용할까?(특징, 장단점)  (0) 2020.08.14
Django 시작하기  (0) 2020.04.24

댓글

💲 광고입니다.