이것저것 적어보는 블로그

Django MySQL 연동 및 Setting 분리하기 본문

카테고리 없음

Django MySQL 연동 및 Setting 분리하기

dona0408 2023. 7. 21. 11:41
반응형

장고의 Setting.py를 보면 모델에 의해 관리되는 DB 세팅이 되어 있다.

기본적으로는 SQLite를 쓰는데 불편하기도 하고 동시 처리나 성능 문제등으로 MySQL, Oracle 등 다른 DBMS로 바꿔서 쓴다.

기본 세팅은 위와 같이 되어 있다. MySQL과 관련 드라이버를 설치 후 Setting을 바꿔주면 된다.
pip install mysqlclient

이후 별도의 파일을 만들어서 아래 내용을 작성하면 된다. 나의 경우엔 db_setting.py라고 저장했다.

# MySQL 연결
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '사용할 DB 이름',
        'USER': 'DB 접속 계정명',
        'PASSWORD': 'DB 접속 계정 비밀번호',
        'HOST': '실제 DB 주소', # 로컬에서 db돌리면서 장고 돌리는 경우는 localhost, 외부에 있다면 db주소
        'PORT': '',  # 기본포트는 3306으로 비워둬도 잘 연결된다
    }
}
SECRET_KEY = '기존 Setting.py에 있던 키 가져와서 넣기'

위 코드는 MySQL 기준으로 작성되어 있긴한데, 엔진 부분 수정하고 드라이버 따로 받으면 다른 DB와 연동 가능하다.

'django.db.backends.~'

~에는 sqlite3, postgresql, mysql, oracle 등 사용할 DB이름을 적으면 된다. 기타 서드파티 백엔드는 장고 도큐를 참고하면 된다.

 

Django

The web framework for perfectionists with deadlines.

docs.djangoproject.com

https://docs.djangoproject.com/ko/4.2/ref/databases/

 

Django

The web framework for perfectionists with deadlines.

docs.djangoproject.com

 

로컬에서 혼자 쓰는 프로젝트라면 해당 내용을 바꿔서 바로 사용해도 되지만

Git이나 기타 서버등에 올리면 계정과 암호가 노출되므로 보통은 파일을 분리해서 적용한다.

분리한 파일은 .gitignore에 추가하거나 절대 add 해서는 안된다!


Setting.py 최상단에 from .db_setting import DATABASE을 추가해서 분리한 세팅을 import해주자

이후 기존 DB세팅은 지우거나 주석처리 후 새 세팅을 적어주면 끝!

설정이 모두 잘 되어있다면 runserver 명령이 문제없이 작동한다. 오류가 발생하면 설정이 잘못되어 있다는 것이니 다시 확인해 보자.

python manage.py makemigrations <app-name> 해당 명령으로 모델을 db에 적용시킬 준비를 하고
python manage.py migrate <app-name> 준비한 내용을 db에 반영
python manage.py runserver 이후 사용 하면 MySQL과 연동이 된 상태다.

반응형
Comments