[MySQL] Django MySQL 연동 및 데이터 삽입

haejun-kim·2020년 8월 15일
1

[DATABASE]

목록 보기
3/7
post-thumbnail

Django 에서는 기본적으로 sqlite3와 연동된다. 따라서 MySQL을 사용하고 싶다면, 설정을 해주어야한다.

파이썬에서는 mysqlclient라는 라이브러리를 통해 MySQL과 DB를 연동할 수 있다.

먼저 작업을 할 가상환경으로 진입한 후 설치해주자

pip3 install mysqlclient

이제 실제 장고 세팅에 들어가서 데이터베이스를 MySQL로 쓰겠다는 설정을 해줘야한다.

수정하기 전에 나는 my_settings.py파일을 하나 생성해서 그 안에 데이터베이스를 연동시키는 정의를 입력하고, my_settings.py를 임포트해서 사용했다.

  • my_setting.py파일 생성
touch my_settings.py
  • 생성 된 my_settings.py에 다음과 같이 입력해준다.
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',    [1]
        'NAME': 'starbucks',                     [2]
        'USER': 'root',                          [3]
        'PASSWORD': 'password',                  [4]
        'HOST': 'localhost',                     [5]
        'PORT': '3306',                          [6]
    }
}

위 명령에 대한 설명은 다음과 같다.

[ 1 ] : 사용할 엔진 설정. 그대로 두면 됨

[ 2 ] : 연동할 MySQL의 데이터베이스 이름

[ 3 ] : DB 접속 계정명

[ 4 ] : 해당 DB 접속 계정 비밀번호

[ 5 ] : 실제 DB 주소, 따로 설정 안했으면 그대로 두면 됨

[ 6 ] : 포트번호, 따로 설정 안했으면 그대로 두면 됨


  • 기존 settings.py에서 연동시켜준다.

현재 상태에서 settings.py를 확인해보면 데이터베이스 부분에 다음과 같이 설정되어 있을 것이다.

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

이 부분을 다음과 같이 수정해주자

import my_settings

DATABASES = my_settings.DATABASES

이제 실제로 사용할 데이터베이스를 생성한다.

  • mysql -u root -p 명령을 통해 Mysql을 실행시킨 후 다음의 명령어로 데이터베이스를 만들어준다.
mysql> CREATE DATABASE starbucks CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • 제대로 생성 되었는지 확인해보자
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mysql_test         |
| performance_schema |
| starbucks          |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

생성이 제대로 된 것을 확인할 수 있다. 이 생성 한 데이터베이스를 사용하기 위해선 다음의 명령어를 입력한다.

mysql> use starbucks;
Database changed
mysql> show tables;
Empty set (0.01 sec)

데이터베이스가 변경되었고, 아직 테이블을 생성하지 않았기 때문에 테이블이 없다는 메세지를 반환해준다.

설정 교체가 완료된 후 python3 manage.py migrate를 실행해 데이터베이스에 테이블을 만들어준다.

show tables; 로 확인해보면 테이블이 정상적으로 생성 된 것을 확인할 수 있다.

데이터베이스에 값을 저장하는 스크립트 파일을 생성해뒀다면 스크립트 파일을 실행해주면 테이블에 값이 저장되는 것을 확인할 수 있다.

1개의 댓글

comment-user-thumbnail
2020년 8월 23일

이걸 보고 MySQL을 깨달았습니다...

답글 달기