티스토리 뷰

참고

https://medium.com/@omaraamir19966/connect-django-with-mysql-database-f946d0f6f9e3

 

Connect DJango with MySQL Database

Out of the box Django comes with sqlite database embedded within the project. Minimum amount of configurations and the ease of data…

medium.com

 

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

Django 에서는 기본적으로 sqlite3와 연동된다. 따라서 MySQL을 사용하고 싶다면, 설정을 해주어야한다. 파이썬에서는 mysqlclient라는 라이브러리를 통해 MySQL과 DB를 연동할 수 있다.먼저 작업을 할 가

velog.io

Why?

디장고 내의 sqlite3는 데이터를 한 눈에 확인하기 어려웠다. 또한 SQL문을 사용하려면 매번 서버를 껐다켰다 해야 했다. 

처리해야 할 데이터 양이 늘어나면 테이블을 조작하고 Django ORM 외에도 쿼리를 불러와야할 일이 생길거고, 여러 명이 작업을 하기 때문에 MySQL을 쓰는것이 프로젝트에 적합하다고 판단했다.

 

sqlite 단점 - 동시성 제한의 문제

동시성(Concurrency)에 제한이 있습니다. 동시에 여러 프로세스가 SQLite 데이터베이스에 액세스하고 쿼리가 가능하지만 주어진 시간에 하나의 프로세스만이 데이터베이스를 변경할 수 있습니다. 즉 SQLite는 대부분의 다른 임베디드 데이터베이스 관리 시스템보다는 더 큰 동시성을 지원하긴 하지만 MySQL, PostgreSQL과 같은 클라이언트-서버의 구조를 같은 RDBMS만큼은 아닙니다.

 

mysql 장점

웹 사이트 및 웹 애플리케이션에 적합합니다. MySQL은 인터넷을 통해 많은 웹 사이트와 애플리케이션을 지원합니다. 이는 대체로 MySQL 데이터베이스를 설치하고 설정하는 것이 쉽고 속도가 빠르며 장기적으로 봤을 때 확장성이 좋기 때문입니다.

출처: https://smoh.tistory.com/369?category=706280 [Simple is Beautiful.]

 

MySQL

1. 새로운 스키마 생성

schema name을 djangodatabase 로 설정(자유)

 

2. 3개의 쿼리 하나씩 차례대로 실행

CREATE USER 'dbadmin' IDENTIFIED BY ‘12345’;

GRANT ALL ON djangodatabase.* TO ‘dbadmin’@’%’;

FLUSH PREVILEGES;

 

Django

1. terminal

brew install mysql
pip install mysqlclient

2. django venv

pip install mysqlclient

 

3. settings.py 설정

[참고](https://velog.io/@yoon1ee/django-mysql-%EC%97%B0%EB%8F%99)

settings.py 파일에 담긴 secret key 와 db 정보는 중요한 정보이므로 추후 github에 push 전에 반드시 처리해주어야 한다.

manage.py가 있는 directory 에서 아래와 같은 my_settings.py 파일을 생성.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangodatabase',
        'USER': 'dbadmin',
        'PASSWORD': '12345',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

이후 settings.py에는 아래와 같이 변경.

import my_settings.py
.
.
DATABASES = my_settings.DATABASES

마지막으로 my_settings.py 파일이 있는 directory 에서 .gitignore을 생성하는데, 여기 를 이용하면 파일 생성이 편리하다.

해당 파일 복붙시 마지막에 다음을 추가한다.

my_settings.py
*.csv

 

4. migrate 해주고 생성된 테이블에 데이터베이스 넣어준다.

python manage.py migrate
python manage.py loaddata....

 

'Django Framework' 카테고리의 다른 글

Django 권한설정 permission_classes  (0) 2021.12.15
Django JWT 설정 및 SECRET KEY 숨기기  (0) 2021.12.15
Django custom tags & builtin tags  (0) 2021.11.30
filter와 get의 차이  (0) 2021.11.30
기타 에러들  (0) 2021.11.28
댓글