CS

[Django] CSV 파일 import 해서 SQLite 데이터베이스에 넣기

ji_iin 2021. 7. 30. 11:20

프로젝트를 하다가 크롤링 한 데이터를 DB에 넣어야하는데,

어떻게 넣어야 하나 열심히 구글링해보고 유튜브를 찾아보다가 알게 되었다.

참고한 유튜브 링크이며 이를 바탕으로 정리하였다.

 


해결 방법

SQLite 터미널 다운로드 페이지를 타고 들어가서 자신의 운영체제에 맞는 파일을 다운받는다. 다운받고 폴더를 열면 3가지가 보이는데

 

SQLite Download Page

Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for precompiled bi

sqlite.org

1. 가운데 있는 sqlite3 파일을 드래그 해서 장고 프로젝트 파일에 옮긴다. 

2. 데이터가 있는 csv 파일을 드래그 해서 폴더에 넣는다. ( 아마 db.sqlite3 있는 곳에 함께 넣어야 한다. )

폴더 구성

csv 파일의 컬럼순서와 동일하게 모델도 구성하여야지 데이터가 테이블에 그대로 삽입되기 때문에 이미 마이그레이션 했다면 초기화 하시고, 다시 마이그레이션 하는걸 추천한다. 마이그레이션 초기화 하는방법은 구글링치면 많이 나올 것이다.

내 프로젝트 model.py와 csv 파일이다. 이제 이 모델에 데이터를 삽입해야 한다. 

(참고, csv 파일의 행은 지워줘야 한다. 즉, { id, 책제목, 가격 ... } 있는 1행)

model.py
csv 파일 구성

이제 터미널에 순서대로 치면 데이터가 삽입된다.

sqlite3 db.sqlite3 # 맥 기준, 윈도우는 sqlite3.exe를 쳐야한다.
.mode csv
.import 파일명.csv 테이블 명

이 때 테이블 명은 꼭 db.sqlite 파일 우클릭해서 Open Database 열어 sqlite explorer에서 테이블 명을 확인 한 후

해당 테이블 명을 코드에 쳐야한다.

예를 들어 나는 이렇게 import 하였다.

.import finaldata.csv category_bookclassinfo

 


결과 

데이터가 잘 들어가 있는 것을 확인할 수 있다.