基于python的超市系统V3.0--数据库实现(4)--购物明细表实现

    建立购物明细表的相关增删改查操作。

构建购物清单表:

def creat_shop_list_table():
    # 构造创建购物清单表sql语句
    csql = '''
                CREATE TABLE `shop_list` (
              `shopsId` int(8) NOT NULL AUTO_INCREMENT,
              `shopsCode` int(8) ,
              `goodsName` varchar(20) ,
              `goodsPrice` float ,
              `goodsNumber` int(8) ,
              `goodsAmount` float ,
              PRIMARY KEY (`shopsId`)) 
            '''

    # 获取游标
    c = conn.cursor()

    # 如果数据表已经存在使用 execute() 方法删除表。
    c.execute("DROP TABLE IF EXISTS shop_list")
    c.execute(csql)

查询购物清单内容:

def select_shop_list():
    # 构造sql查询语句
    select = 'select * from shop_list'
    # 获取游标
    c = conn.cursor()
    # 执行查询语句
    c.execute(select)
    results = c.fetchall()
    # 关闭游标 关闭连接
    # c.close()
    # conn.close()
    return results

添加购买的商品信息:

# 添加购买的商品 就是向用户购物清单的list中添加一项
def add(code):
    codelist = dict()
    # 获取商品条码列表
    for re in goods_re:
        codelist[re[0]] = re
    # 没有找到对应的商品,提示条码错误
    if code not in codelist:
        print("条码错误,请重新输入")
        return
    good = codelist[code]
    # 根据查找到的商品获取相关的商品信息
    shopcode = good[0]
    goodsname = good[1]
    goodsprice = good[2]
    # 等待输入数量
    number = int(input("请输入商品购买数量 : \n"))
    # 获取总价
    goodsamount = goodsprice * number
    # 将商品和购买数量封装成list后加入购物清单  未完成
    add_sql = 'INSERT  INTO  shop_list (shopsCode, goodsName, goodsPrice, goodsNumber, goodsAmount) ' \
              'VALUES (%s,%s,%s,%s,%s)'
    c = conn.cursor()
    c.execute(add_sql, (str(shopcode), str(goodsname), str(goodsprice), str(number), str(goodsamount)))
    conn.commit()

修改:

# 修改购买的商品数量,就是修改代表用户购物清单的list列表元素
def edit(id):
    # id-1 即为得到的购物明细项的索引
    index = int(id) - 1
    # 根据索引获取某个购物明细项
    c = conn.cursor()

    # 提示输入新的购买数量
    number = int(input("请输入新的购买数量:\n"))

    sql = 'select goodsPrice from shop_list WHERE shopsId = "' + str(index) + '"'
    c.execute(sql)
    price = c.fetchall()
    goodsamount = price[0][0] * number
    sqln =' update shop_list set goodsNumber = %s  WHERE shopsId = %s'

    c.execute(sqln, (number, index))
    sqla = ' update shop_list set goodsAmount = %s  WHERE shopsId = %s'
    c.execute(sqla, (goodsamount, index))

    conn.commit()

删除:

# 删除已购买的商品明细项,就是删除代表用户购物清单的list列表的元素
def delete(id):
    index = int(id) - 1
    # 直接根据索引项从清单中删除购物明细项
    sqld = 'delete from shop_list WHERE shopsId = "' + str(index) + '"'
    c = conn.cursor()
    c.execute(sqld)
    conn.commit()
发布了28 篇原创文章 · 获赞 17 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/boy123456_happy/article/details/101223274
今日推荐