728x90

SQLite3 를 사용하여 간단하게 상품을 등록하고, 구매하고 보여주는 코드 예제이다.

isolation_level=None 을 하면 auto commit 이 된다.

 

import sqlite3
 
# DB 생성은 DB Browser for SQLite 를 이용하여 수동 생성(?) 한 줄 알았는데 그냥 자동 생성된다.
## 데이터베이스를 연결하는 코드
conn = sqlite3.connect("baseballmarket.db", isolation_level=None)
 
# 커서 획득
= conn.cursor()
 
## 상품과 주문 테이블을 생성하는 코드
productList = (('모자','35000'),('배트','100000'),('글러브','150000'))
 
c.execute("CREATE TABLE IF NOT EXISTS productList(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, price INTEGER)")
c.execute("CREATE TABLE IF NOT EXISTS orderList(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, cnt INTEGER, price INTEGER, total INTEGER)")
 
## 상품 데이터를 추가하는 코드
# 상품 데이터 중복 저장 체크
for row in c.execute('SELECT count(*) FROM productList'):
    if row[0== 0:
        c.executemany("INSERT INTO productList (name,price) values (?,?)", productList)
 
## 상품 목록을 표시하는 코드
while True:
    print("------------------상품목록------------------")
    for row in c.execute('SELECT id,name, price FROM productList'):
        print('상품번호 :',row[0],', 상품명 :', row[1], ', 가격 :', row[2])
    print("--------------------------------------------")
 
    print('')
    num = input("구매하실 상품의 번호를 입력해주세요: ")
    c.execute("SELECT name, price FROM productList WHERE id = ?",(num,))
    result = c.fetchone()
 
 
    ## 상품 번호와 주문 수량을 입력받는 코드
    print('')
    #print("구매할 수량을 입력해주세요: ")
    count = int(input("구매할 수량을 입력해주세요: "))
    total = count * int(result[1])
 
    ## 주문 데이터를 db에 추가하는 코드
    c.execute("INSERT INTO orderList (name, cnt, price, total) VALUES (?,?,?,?)", (result[0],count,result[1],total))
 
    ## 현재까지 주문 내역을 출력하는 코드
    print('')
    print("현재까지 구매한 내역 보기")
    print("--------------------주문목록--------------------")
    for row in c.execute('SELECT * FROM orderList'):
        print('상품명 :',row[1],', 주문수량 :', row[2], ', 단가 :', row[3], ', 구매가격 :', row[4])
    print("------------------------------------------------")
 
    print('')
    print("상품을 추가 구매하시겠습니까?\n중단하려면 'X'을 눌러주세요.\n계속 하시려면 엔터키를 눌러주세요. ")
    if(input() == "x"): break
 
print('')
print("총 구매가격", end='')
for row in c.execute('SELECT sum(total) FROM orderList'):
    print(' : ',row[0],'원')
print('')
 
conn.close()
 

 

 

'파이썬 > Python 기초' 카테고리의 다른 글

Python SQLite DB 연동 샘플  (0) 2022.01.21
[Python] MariaDB 연결  (0) 2021.05.20
csv 파일 다루기  (0) 2021.05.11
람다 표현식으로 함수 만들기  (0) 2021.05.10
[파이썬기초] list comprehension  (0) 2021.05.04
블로그 이미지

Link2Me

,