从零开始撸python
Day3 :超市管理系统2.0(mysql版)
实现第一阶段飞跃~,达到科班本科毕业水平,后端基本打通,接下来修整一周时间,学习前端内容hh
1 import market 2 3 def main(): 4 print("********************************************超市管理系统2.0******************************************") 5 print("*************1.查看商品列表") 6 print("*************2.根据编号查询商品") 7 print("*************3.添加商品") 8 print("*************4.根据编号删除商品") 9 print("*************5.商品打折") 10 print("*************6.查看所有订单") 11 print("*************7.删除订单") 12 print("*************8.订单统计") 13 print("*************9.商品结算") 14 print("*************10.退出") 15 print("****************************************************************************************************") 16 c=int(input("请选择:")) 17 if c==1: 18 market.getAllProducts() 19 elif c==2: 20 market.getProduct() 21 elif c==3: 22 market.addProduct() 23 elif c==4: 24 market.delProduct() 25 elif c==5: 26 market.setDiscount() 27 elif c==6: 28 market.getAllOrders() 29 elif c==7: 30 market.delOrder() 31 elif c==8: 32 market.acountOrders() 33 elif c==9: 34 market.settle() 35 else: 36 print("****************************************************************************************************") 37 38 39 if __name__=='__main__': 40 main()
1 import orm 2 import random 3 4 #查看商品列表 5 6 def getAllProducts(): 7 sql="SELECT * FROM products;" 8 data=orm.getData(sql) 9 print("序号 编号 名称 单价 折扣") 10 for product in data: 11 for x in product: 12 print(x,end=" ") 13 print() 14 15 16 #根据编号查询商品 17 def getProduct(): 18 num=input("请输入商品编号:") 19 sql="SELECT * FROM products WHERE num="+num+";" 20 data=orm.getData(sql) 21 if data!=None: 22 print("商品名称:",data[0][2]," 单价:",data[0][3]," 折扣:",data[0][4]) 23 return data[0][2],data[0][3],data[0][4] 24 else: 25 print("商品不存在!") 26 return None 27 28 29 30 #添加商品 31 def addProduct(): 32 name=input("请输入商品名称:") 33 num=random.randint(1000,9999) 34 price=int(input("请输入商品价格:")) 35 sql="INSERT INTO products(num,name,price,discount) VALUES({},'{}',{},1)".format(num,name,price) 36 r=orm.writeData(sql) 37 print(r) 38 39 40 41 #删除商品 42 def delProduct(): 43 num=input("请输入待删除商品信息:") 44 sql="DELETE FROM products WHERE num='{}'".format(num) 45 r=orm.writeData(sql) 46 if r==0: 47 print("删除失败!") 48 else: 49 print("商品",num,"被删除!") 50 51 52 #订单统计(总销量、销售额) 53 def acountOrders(): 54 sql="SELECT * FROM orders;" 55 data=orm.getData(sql) 56 totalCount=0 57 totalAmount=0 58 for orders in data: 59 totalCount+=orders[2] 60 totalAmount+=orders[3] 61 print("总销量",totalCount,"件!销售额",totalAmount,"元!") 62 63 64 #商品折扣(修改折扣信息) 65 def setDiscount(): 66 num=input("请输入需要修改折扣的商品编号:") 67 discount=float(input("请输入要设置的折扣:")) 68 69 if 0.1<discount <1: 70 sql="UPDATE products SET discount={} WHERE num={};".format(discount,num) 71 r=orm.writeData (sql) 72 if r==0: 73 print("设置失败!") 74 else: 75 print("商品{}折扣设置成功".format (num)) 76 else: 77 print("折扣信息输入错误!") 78 79 80 81 82 83 84 85 86 87 88 89 #查看所有订单 90 def getAllOrders(): 91 sql="SELECT * FROM orders;" 92 data=orm.getData(sql) 93 print("序号 编号 数量 金额") 94 for orders in data: 95 for x in orders: 96 print(x,end=" ") 97 print() 98 print("--------------------------------") 99 #删除订单 100 def delOrder(): 101 num=input("请输入待删除订单信息:") 102 sql="DELETE FROM orders WHERE num='{}'".format(num) 103 r=orm.writeData(sql) 104 if r==0: 105 print("删除失败!") 106 else: 107 print("订单",num,"被删除!") 108 109 110 #商品结算 111 def settle(): 112 # 输入商品编号和数量 113 # 计算金额 114 # 重复添加多个商品 115 # 计算订单的总金额、数量 116 # 在订单中添加订单 117 orderCount=0 118 orderAmount=0 119 msg=0 #保存订单是否有效 120 121 while 1==1: 122 data=getProduct() 123 # print(data) 124 num=int(input("请输入商品数量:")) 125 if data!=None: 126 msg=1 127 price=data[1] 128 discount=data[2] 129 amount=float(price)*float(discount)*num 130 orderCount+=num 131 orderAmount+=amount 132 print("当前添加{}件!金额{}元!".format(num,amount)) 133 c=int(input("继续添加请输入1,结算请输入2 :")) 134 if c==1: 135 continue 136 elif c==2: 137 print("=========================================================") 138 break 139 else: 140 print("*****************不要闹!*****************") 141 exit(0) 142 143 print("*********当前您购买的总数量{}件!总金额{}元!".format(orderCount,orderAmount)) 144 145 146 #添加订单 147 if msg==1: 148 oid=str(random.randint(1000,9999)) 149 sql="INSERT INTO orders(num,count,amount) VALUES({},{},{});".format(oid,orderCount,orderAmount) 150 orm.writeData(sql) 151 print("-----------添加成功!")
1 #数据库操作 2 3 import pymysql 4 5 host="localhost" 6 port=3306 7 user="root" 8 password="775825" 9 productdb="python" 10 charset="utf8" 11 12 #链接数据库 13 def getConection(): 14 db=pymysql.Connect(host=host,port=port,user=user,passwd=password,db=productdb,charset=charset) 15 print("--------------------------------链接成功!") 16 return db 17 #查询数据 18 19 def getData(sql): 20 db=getConection() 21 cursor=db.cursor() 22 try: 23 cursor.execute(sql) 24 data=cursor.fetchall() 25 except Exception as e: 26 print("出现异常",e) 27 finally: 28 cursor.close() 29 db.close() 30 return data 31 32 33 34 #更新数据 35 36 def writeData(sql): 37 db=getConection() 38 cursor=db.cursor() 39 r=0 40 try: 41 r=cursor.execute(sql) 42 db.commit() 43 print("------------------数据已更新{}条!".format(r)) 44 except Exception as e: 45 print("出现异常",e) 46 finally: 47 cursor.close() 48 db.close() 49 return r #返回受影响的行数
本文来自博客园,作者:Alex-CTO,转载请注明原文链接:https://www.cnblogs.com/AC-Mirabelle/p/16786740.html