반응형
머신 러닝 모델을 개발하는 단계에서 DB가 아닌 csv 파일을 읽어 개발하는 경우가 있습니다. 하지만 실제 서비스로 오픈할 때는 많은 경우 데이터베이스를 사용해야 합니다. 따라서 csv에서 dataframe으로 불러오는 방법이 아닌 DB에서 dataframe으로 불러오는 방법을 알아보겠습니다.
본 글에서는 MySQL DB를 사용했습니다.

 

🔹 Django - MySQL 연결

settings.py 위치에 db_settings.py를 생성하여 아래 정보를 입력합니다.

db_settings를 gitignore에 등록하여 접속 정보를 숨기려는 목적입니다.

settings.py를 공개하지 않는다면, 바로 추가해도 상관없습니다.

### settings.py
import db_settings

DATABASES = db_settings.DATABASES
### db_settings.py
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',    
        'NAME': 'dbname',                  
        'USER': 'username',                          
        'PASSWORD': 'userpassword',                  
        'HOST': 'localhost',                     
        'PORT': '3306',                          
    }
}

 

 

🔹 Django migrate

model 정보를 바탕으로 migrations 파일을 만들고, db에 전송하여 엔티티를 생성하는 과정입니다.

### shell
# migration 파일 생성
python manage.py makemigrations
# db 전송
python manage.py migrate

다양한 db에 알맞게 sql을 만들어주는 django orm의 강력한 기능입니다.

db와 model에 대해서는 공식문서에 유익한 정보가 많습니다.

 

🔹 Pandas Dataframe 만들기

여기서는 movie 정보를 예시로 사용했습니다.
### vies.py
from .models import Movie
import pandas as pd 

def db_dataframe_test(request):
    movies = Movie.objects.all()
    movies_df = pd.DataFrame(list(movies.values()))
    print(movies_df.head()) # 출력 확인

 

🔹 결과

TMDB 영화 Data

정상적으로 dataframe이 출력되는것을 볼 수 있다.

 

 

Ref.

https://docs.djangoproject.com/en/4.0/topics/db/

https://stackoverflow.com/questions/11697887/converting-django-queryset-to-pandas-dataframe

반응형

BELATED ARTICLES

more