티스토리 뷰

django에서는 데이터베이스 엔진을 default로 SQLite3 를 사용한다.

SQLlite는 작고 가볍지만 대규모 프로젝트에는 사용하지 않는다.


따라서 이번에는 Window 환경에서 Mysql 데이터베이스를 django(Python 2.7)와 연동을 해보겠다.


(작년 여름 한번 시도해보았지만 지식 부족+구글링 실력 부족으로 포기한 적이 있었다.)

(사실 그래서 연동 성공의 기쁨으로 새벽에 포스팅중...헿)


django와 mysql을 연동하기위해선 mysql이 설치되어 있어야 한다.


mysql 설치 방법  출처:[빌노트]


mysql이 설치되었다면 데이터베이스부터 만들어 준다.



mysql workbench에서 root 사용자 계정으로 로그인 후 , create database 명령문을 통해 데이터베이스를 만들어 준다. 


실행은 ctrl+shfit+entet 단축키나 번개모양을 누르면 실행된다. 



새로고침 모양을 누르면 데이터베이스가 생성이 된 것을 확인할 수 있다. 


이제 연동 드라이버를 django에  설치해줘야한다.


django에서 제공하는 MySql 연동 드라이버 모듈은 3가지가 있다.


MySQLdb - 제일 안정된 드라이버, python3은 지원하지 않음

Mysqlclient - MySQLdb를 개선한 패키지, Python3.3 이상의 버전도 지원하고있음, 장고에서 추천함

MySQL Connector/Python - MySQL 개발사 오라클에서 제공하는 드라이버


3가지 중 자신에게 맞는 드라이버를 설치하면 되는데, 여기서 나는 Mysqlclient를 사용했다.


Mysqlclient를 설치해준다

pip install Mysqlclient

여기서,


error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

이러한 오류가 나는 경우가 있다. (python3 환경이면  Visual C++ 10.0으로 나옴) 


오류를 살펴보면 

http://aka.ms/vcpython27 여기서 Microsoft Visual C++ 9.0 이것을 설치하라고 하는 것인데,

MS VS C++은 용량도 크고 설치 시간도 오래걸리기 때문에 부담이 크다.

(나는 설치했는데도 오류가 났다.mysql.h가 없다나뭐라나..)


그래서 다른 해결 방법은 Mysqlclient 을 미리 컴파일된 pip용 whl 파일을 다운 받아 해결하는 것이다.



이곳에서 자신의 python 버전(cp), 파이썬 비트(win)에 맞는 mysqlclient를 다운로드 받는다.


파이썬 비트 확인하기


그 후 다운 받은 whl 파일이 있는 곳에서

(venv) C:\Users\temp\Downloads> pip install {다운 받은 whl 파일 이름}

설치를 해준다. 


정상적으로 설치가 되면 settings.py 파일에서 database 설정을 해준다.

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # mysql 엔진 설정
        'NAME':'mysite', # 데이터베이스 이름
        'USER':'root', # 데이터베이스 연결시 사용할 유저 이름
        'PASSWORD':'password', # 유저 패스워드		
        'HOST':'localhost', 
        'PORT':''
    }
}


그 다음, 데이터베이스에 변경사항을 반영하고

python manage.py migrate



mysql workbench를 확인하면 이렇게 models.py에 정의해둔 테이블과 장고 기본 정의 테이블들이 생긴걸 볼 수 있다. 


데이터베이스 엔진을 새로 설정하여 초기화 된 상태이므로 장고 admin 사이트에 로그인 할 수 있는 관리자를 새로 만들어 준다.

python manage.py createsuperuser


확인을 위해 서버를 기동해준다.

python manage.py runserver


정상적으로 작동하면 연동 성공!


어드민에서 데이터를 입력하면 성공적으로 데이터가 저장된 것을 mysql workbench에서 확인할 수 있다.



refer

[Django] Windows 10 + Pycharm + Django + MySQL DB 연동하기

댓글