본문 바로가기

프로젝트

메뉴주문프로젝트 -database2

728x90

DB에 메뉴카테고리 삽입

python,sqllite3 활용

 

#db에 메뉴카테고리 삽입 sql

import sqlite3, os

path = os.path.dirname(__file__)                #현재수행중인 코드를 담고있는 파일의 경로를 path에 저장
 
conn = sqlite3.connect(path + '/test.db')
 
                                                              #/test.py가 없을경우 새로 생성하면서 연결,있을경우 해당 db로 연결
cur = conn.cursor()
# cursor:하나의 DB connection에 대하여 독립적으로 SQL 문을 실행할 수 있는 작업환경을 제공하는 객체
 
cur.execute("insert into menucategorie values('','MANEGER')")
# sql문을 따로 정의하지 않고 바로 execute()에서 실행되게 함  cur.execute를 통해 테이터 삽입
           
conn.commit()    #변경사항 저장
conn.close()       #db와 연결 해제 
      


 connetciton을 얻으면 cursor객체를 만들고 execute()메서드를호출해서 sql명령 실행
삽입 sql문
insert into 테이블명 (열1,열2,...) values(값1,값2,...)
 
 
----------------------------------------------------------------------------------------------------------------------------

#db에서 지정한 카테고리의 음식들을 가져오는 sql

import sqlite3,os

def dataUproad(cateforie):
    menu = []

    path = os.path.dirname(__file__)
    conn = sqlite3.connect(path + '/text.db')
    cur = conn.cursor()
    cur.execute('select menuname, price from food where catefori = ?',(cateforie,))
       
    for row in cur:
                menu.append({row[0]:int(row[1])})     #딕셔너리형인 menu에 쌓음 value는 정수형으로 변환
    conn.close()
   
     ?의 의미 : 변수를 나중에 넣어준다 ?에 음식종류(한식,중식) 이 들어감
     (cateforie,) : 쉼표를 빼면 괄호가 튜플형이라 오류남 튜플은 한개원소 써줄때 쉼표 써줘야함
    두개부턴 (1,2) 이런식으로 씀

 

for [변수] in [문자열, 리스트, 튜플]:
  [수행부분]

for 반복문은 in 뒤에 존재하는 문자열, 리스트, 튜플을 순서대로 순회하면서 하나씩  [변수]에 넣어준다.

 

--------------------------------------------------------------------------------------------------------------------------------

728x90