Base/Django

[Django] #16 - Django csv 파일 사용하기

반응형

csv -> model에 넣는 작업

 

비정형 데이터 - dataframe(pandas) - (. csv) - model(class) 

 

엑셀 -> python code DB 연동 로직

 

django - 파일 업로드(.csv)

django - visualization(시각화) - script(json)

numpy - pandas

script - jquery, d3, google chart, highchart

ajax - jquery 

 

 

 

 

위와 같은 csv 파일이 있다.

 

이런 csv 파일을 받기 전에는 models 부분에 받을 csv에 대한 테이블을 만드는 것을 선행해야 한다.

(class 명을 Seops로 바꿨습니다. 아래에 사용됩니다.)

해당 csv 파일을 받기 위해 csv에 맞는 형태의 class를 구현해준다.

 

 

pash를 설정해준다.

 

 

url path에 따른 view를 간단하게 구현하고 되는지 테스트해보자

 

성공적으로 되었다.

 

csv를 사용하기 위해서는 모듈을 추가해줘야 한다. 

 

 

이렇게  import csv 를 추가하고 

 

view 단에서 csv 파일을 위와 같이 읽어준다.

path에 경로를 설정하고 open이라는 명령어로 해당 path를 열고 그 파일을 연다.

그 후 csv.reader를 통해 해당 파일을 읽으면 reader라는 변수에 csv가 담기게 된다.

print로 성공적으로 진행됐는지 확인한다. 

 

 

이렇게 print의 값이 나온 걸 볼 수 있다.

 

이런 식으로 reader의 값이 정상적으로 들어갔는지 확인하고

 

최종적인 로직은 아래와 같다.

 

csv를 이런 형태로 받는다. 리스트를 하나 만들고 해당 리스트에 row의 칼럼에 대해 이름과 함께 넣어준다.

그렇게 for 문을 돌려 reader에 있는 것들을 하나씩 list에 담고 우리가 만든 class에 생성해준다. 

Seops는 우리가 만든 클래스이다.

 

 

근데 그전에 해야 될 것이 2개 있는데  

1.migrate - models 가 바뀌면 다시 적용해줘야 한다.

2.admin  - 등록하는 작업

이 두 개가 선행되어야 한다.

 

admin.py

admin에 우리가 어떤 클래스를 사용한다고 등록을 해줘야 한다.

 

migrate로 우리가 사용하는 모델이 바뀌었음을 말해주고 적용시켜준다.

 

이 두 개를 실행한 뒤 다시 서버를 켜준다.

 

해당 부분을 호출하고 값이 제대로 들어갔는지 보려면 admin 쪽으로 이동해서 보자.

 

 

 

admin을 통해 seops 가 등록되어 있는 걸 볼 수 있고 해당 값을 클릭해보면

 

 

위와 같이 데이터가 들어가 있는 걸 볼 수 있다.

 

반응형