python-flask /6. SQLite Query - 데이터 입력하기

dothouse·2024년 1월 29일

python_flask

목록 보기
7/11

0. 데이터 준비하기

웹구현에 필요한 데이터를 Flask와 Sqlite를 통해서 처리하고자 한다.
이를 위해서 필요한 데이터를 테이블에 적용하는 연습을 하고자 한다.

프로젝트에서는 주로 Sqlite를 이용해 직접 데이터를 입력하였다.

1. 필요한 데이터 준비하기

✅ csv 파일 - Flask에서 사용할 column명과 일치 시키기
✅ csv로 입력시 id column도 미리 만들어 둘 것!!

2. database - Table에 data 입력하기

1) python 이용

a. python을 활용하여 데이터 입력


# Import required modules
import csv
import sqlite3

# db에 연결하기
connection = sqlite3.connect('/jeju.db')

# SQL query를 실행하기 위한 cursor 만들기
cursor = connection.cursor()

# Table 만들기 (columns -> id, name, score)
# id 행은 자동으로 할당되는 값으로 데이터 입력시 추가할 필요 없다.
create_table = '''CREATE TABLE TestScore(
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                name TEXT NOT NULL,
                score INTEGER NOT NULL);
                '''

# 만든 Table을 db에 할당하기
cursor.execute(create_table)

# 데이터 입력에 필요한 파일을 불러오기
file = open('#필요한파일#', encoding= 'utf-8')

# 불러온 파일을 할당
contents = csv.reader(file)

# 쿼리문을 이용해 테이블에 값들 넣기위한 준비
# 1) 쿼리문 작성
insert_records = "INSERT INTO TestScore (name, score) VALUES(?, ?)"

# 파일의 데이터를 위에 작성한 쿼리에 따라 입력
cursor.executemany(insert_records, contents)

# 데이터가 테이블에 잘 입력되었는지 확인하기
select_all = "SELECT * FROM person"
rows = cursor.execute(select_all).fetchall()
for r in rows:
    print(r)

# commit (반드시 해야 저장됨)
connection.commit()

# db와의 연결을 끊기
connection.close()

b. flask 연동

(1) flask db migrate
(2) flask db upgrade

(3) 실패시 현재 버전으로
flask db stamp head 후 flask db migrate

2) Sqlite 이용

a. model.py를 통해 테이블 생성

b. flask 연동

(1) flask db migrate
(2) flask db upgrade

(3) 실패시 현재 버전으로
flask db stamp head 후 flask db migrate

c. Sqlite를 통해서 데이터 입력

(1) 데이터베이스 열기

  • 파일 - 데이터베이스 열기
    [파일명]D:\song\practice\project1\web\jeju.db

(2) 데이터베이스 구조 확인하기

  • 입력한 테이블이 잘 입력되었는지 확인

(3) 데이터 입력

  • 파일 - 가져오기 - csv파일에서
  • ✅ csv 파일의 column과 적용할 테이블의 column이 일치하는지 확인
  • 첫행에 필드명 포함 체크
  • python을 통해서 만든 csv는 이상없이 들어감
profile
새로운 길

0개의 댓글