SoShin_
소신
SoShin_
전체 방문자
오늘
어제
  • 분류 전체보기
    • Study
      • HTML | CSS
      • JavaScript
      • Django
      • Python
      • Flask
      • Git
      • Project
      • 이것저것
      • 코딩테스트
      • NestJS
    • Review
      • Book
      • Movie & Drama

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • allauth
  • JavaScript
  • db
  • 유저기능
  • 플라스크
  • js
  • 장고 유저기능
  • FLASK
  • flask orm
  • openpyxl
  • orm
  • 영화리뷰
  • SQLAlchemy
  • Django
  • Django allauth
  • 장고
  • MongoDB
  • node.js
  • 문제풀이
  • 코딩테스트
  • 파이썬
  • 장고 제네릭뷰
  • 장고 allauth
  • SQLite
  • Django 유효성 검증
  • KakaoAPI
  • 위도경도
  • 자바스크립트
  • Python
  • 영화추천

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SoShin_

소신

[ Flask SQLAlchemy ]  SQLAlchemy를 사용하여 엑셀파일 데이터를 DB에 넣기
Study/Flask

[ Flask SQLAlchemy ] SQLAlchemy를 사용하여 엑셀파일 데이터를 DB에 넣기

2021. 12. 30. 13:56
반응형

openpyxl을 이용하여 엑셀을 읽어 데이터를 SQLAlchemy를 사용해 DB에 넣기

from openpyxl import load_workbook  # 엑셀을 불러오기위해 openpyxl 패키지 사용
from kakao_api import generate_location
from models import Vegan
import app

wb = load_workbook(filename='VeganMap.xlsx')
# 엑셀 불러오기
ws = wb.active
# 현재 활성화 되어있는 시트 선택! [ 저는 시트가 하나라서 그게 선택됩니다!]
for row in range(3, ws.max_row):
    try:
        lat_log = generate_location(ws.cell(row, 6).value)
    except Exception as e:
        lat_log = [f"error{e}", f"error{e}"]
    vegan = Vegan(shop=ws.cell(row, 2).value, address=ws.cell(row, 6).value, sector=ws.cell(row, 3).value,
                  menu=ws.cell(row, 7).value, latitude=lat_log[0], longitude=lat_log[1])

    app.db.session.add(vegan)
    print(f"add 성공: {ws.cell(row, 2).value}")

app.db.session.commit()

위 코드의 generate_location은 도로명 주소를 받아 위도 경도를 리스트에 넣어 반환해주는 함수입니다.

이때 도로명 주소가 등록되어 있지 않아 Kakao API에서 위경도를 모를 경우에는 error를 출력하도록 try except를 통해 예외처리를 해주었습니다.

그 후 SQLAlchemy를 사용해 db에 session.add를 통해 데이터를 넣어주었습니다.

데이터를 넣어준 후에는 session.commit을 통해 수행한 내용을 저장해주어야 합니다!

 

데이터가 들어간 모습

 

반응형

'Study > Flask' 카테고리의 다른 글

[ Flask SQLAlchemy ] SQLAlchemy를 사용하여 엑셀파일 데이터를 DB에 넣기  (0) 2021.12.30
[ Flask ] Flask에서 SQLAlchemy 사용하기! [ Flask ORM ]  (2) 2021.12.30
[Flask] 플라스크 동적 페이지 라우팅과 요청 (POST)  (0) 2021.12.18
[Flask] Flask에서 pymongo 사용하기!  (0) 2021.12.17
[Flask] Flask 시작하기  (0) 2021.12.17
    'Study/Flask' 카테고리의 다른 글
    • [ Flask SQLAlchemy ] SQLAlchemy를 사용하여 엑셀파일 데이터를 DB에 넣기
    • [ Flask ] Flask에서 SQLAlchemy 사용하기! [ Flask ORM ]
    • [Flask] 플라스크 동적 페이지 라우팅과 요청 (POST)
    • [Flask] Flask에서 pymongo 사용하기!
    SoShin_
    SoShin_
    직접 쓰는 개발 블로그

    티스토리툴바