通过前面 基于python的超市系统V1.0--控制台实现 和 基于python的超市系统V2.0--控制台实现(方法封装) ,我们知道,商品信息需实现一定的初始化,要能够查询所有的商品信息列表,在购物的时候进行展示。同时,后续购物结束,需根据商品条码进行查找对应的商品。此部分内容涉及数据库的增删改查等操作。因此,自定义函数如下。
创建商品信息表:
# 创建商品信息表
def creat_goods_table():
# 构造创建商品信息表sql语句
sql = ''' CREATE TABLE `goods_tab` (
`goodsId` int(8) NOT NULL,
`goodsName` varchar(20) ,
`goodsPrice` float ,
PRIMARY KEY (`goodsId`))
'''
# 获取游标
c = conn.cursor()
# 如果数据表已经存在使用 execute() 方法删除表。
c.execute("DROP TABLE IF EXISTS goods_tab")
c.execute(sql)
# 关闭游标 关闭连接
# c.close()
# conn.close()
初始化商品信息表:
# 初始化商品信息表
def ini_goods():
# 构造初始化表数据语句sql
init_goods_table1 = '''INSERT INTO goods_tab (goodsId, goodsName, goodsPrice) VALUES ("1000001", "疯狂python讲义", "82.4")'''
init_goods_table2 = '''INSERT INTO goods_tab (goodsId, goodsName, goodsPrice) VALUES ("1000002", "疯狂andriod讲义", "99")'''
init_goods_table3 = '''INSERT INTO goods_tab (goodsId, goodsName, goodsPrice) VALUES ("1000003", "疯狂java讲义", "72.4")'''
init_goods_table4 = '''INSERT INTO goods_tab (goodsId, goodsName, goodsPrice) VALUES ("1000004", "疯狂ios讲义", "108")'''
init_goods_table5 = '''INSERT INTO goods_tab (goodsId, goodsName, goodsPrice) VALUES ("1000005", "疯狂ruby讲义", "128")'''
# 获取游标
c = conn.cursor()
# 执行语句初始化商品信息表
c.execute(init_goods_table1)
c.execute(init_goods_table2)
c.execute(init_goods_table3)
c.execute(init_goods_table4)
c.execute(init_goods_table5)
# 增删改记得提交到数据库执行 数据库数据才会更新
conn.commit()
查询商品信息表:
# 查询所有商品信息表
def select_goods():
# 构造sql查询语句
select = 'select * from goods_tab'
# 获取游标
c = conn.cursor()
# 执行查询语句
c.execute(select)
results = c.fetchall()
# 关闭游标 关闭连接
# c.close()
# conn.close()
return results
根据条码查找商品信息记录
# 根据条码查找指定的商品信息记录
def select_goods_by_code(code):
# 获取游标
c = conn.cursor()
# 执行查询语句
c.execute('SELECT * FROM goods_tab WHERE goodsId = "' + str(code) + '"')
results = c.fetchall()
# 关闭游标 关闭连接
# c.close()
# conn.close()
return results