from pymysqlimport connect
class WN(object):
def __init__(self):
self.is_login =False
? ? ? ? self.conn = connect(host='localhost', port=3306, database='wn', user='root', password='root', charset='utf8')
# 獲取cursor對(duì)象
? ? ? ? self.cursor =self.conn.cursor()
def __del__(self):
# 關(guān)閉cursor對(duì)象
? ? ? ? self.cursor.close()
self.conn.close()
def execute_sql(self,sql):
self.cursor.execute(sql)
for tempin self.cursor.fetchall():
print(temp)
def show__all__items(self):
'''顯示所有的商品'''
? ? ? ? sql ="select *from goods;"
? ? ? ? self.execute_sql(sql)
def show_cates(self):
sql ="select name from goods_cates;"
? ? ? ? self.execute_sql(sql)
def show_brands(self):
sql ="select name from goods_brands;"
? ? ? ? self.execute_sql(sql)
def add_cates(self):
item_name =input('請輸入新商品分類的名稱:')
sql ="""insert into goods_cates (name) values("%s");"""%item_name
self.cursor.execute(sql)
self.conn.commit()
def add_brands(self):
item_name =input('請輸入新商品分類的名稱:')
sql ="""insert into goods_brands (name) values("%s");"""%item_name
self.cursor.execute(sql)
self.conn.commit()
def update_brands(self):
id=0
? ? ? ? while True:
try:
id =int(input('輸入要修改的商品分類的id:'))
except Exception as ret:
print('輸入正確的id編號(hào)!')
else:
break
? ? ? ? item_name =input('輸入新商品分類的名稱:')
sql ="update goods_brands set name=%s where id=%s"
? ? ? ? self.cursor.execute(sql,[item_name,id])
self.conn.commit()
def update_cates(self):# 修改
? ? ? ? id=0
? ? ? ? while True:
try:
id =int(input('輸入要修改的商品分類的id:'))
except Exception as ret:
print('輸入正確的id編號(hào)!')
else:
break
? ? ? ? item_name =input('輸入新商品分類的名稱:')
sql ="update goods_cates set name=%s where id=%s"
? ? ? ? self.cursor.execute(sql,[item_name,id])
self.conn.commit()
def delete_cates(self):# 刪除
? ? ? ? id=0
? ? ? ? while True:
try:
id=input('輸入要?jiǎng)h除的商品分類的id:')
except Exception as ret:
print('輸入正確的ID編號(hào)')
else:
break
? ? ? ? isdel =input('你確定要?jiǎng)h除編號(hào)為%s的商品分類嗎,按y確認(rèn),其他鍵返回主菜單:'%id)
if isdel =='y':
sql ="update goods_cates set is_show=0 where id=%s;"
? ? ? ? ? ? self.cursor.execute(sql,[id])
self.conn.commit()
pass
? ? def delete_brands(self):# 刪除
? ? ? ? id =0
? ? ? ? while True:
try:
id =input('輸入要?jiǎng)h除的商品分類的id:')
except Exception as ret:
print('輸入正確的ID編號(hào)')
else:
break
? ? ? ? isdel =input('你確定要?jiǎng)h除編號(hào)為%s的商品分類嗎,按y確認(rèn),其他鍵返回主菜單:' % id)
if isdel =='y':
sql ="update goods_brands set is_show=0 where id=%s;"
? ? ? ? ? ? self.cursor.execute(sql, [id])
self.conn.commit()
pass
? ? def register(self):# 注冊
? ? ? ? username =input('請輸入用戶名:')
pwd =input('輸入密碼:')
addr =input('請輸入地址:')
tel =input('輸入電話:')
sql ="insert into customers values (0,%s,%s,%s,password(%s));"
? ? ? ? self.cursor.execute(sql,[username,addr,tel,pwd])
self.conn.commit()
print('注冊成功了!')
def login(self):# 登錄
? ? ? ? username =input('輸入用戶名:')
pwd =input('輸入密碼:')
sql ='select id from customers where name=%s and passwd =password(%s);'
? ? ? ? self.cursor.execute(sql,[username,pwd])
self.uid =self.cursor.fetchone()
if self.uid:
self.uid =self.uid[0]
self.is_login =True
? ? ? ? return self.is_login
def create_order(self):
pid =input('輸入商品的編號(hào)')
num =input('輸入商品的數(shù)量')
sql ="select *from goods where id=%s and is_show=1 and is_saleoff=1;"
? ? ? ? result =self.cursor.execute(sql,[pid])
if result:
sql ="insert into orders values (0,now(),%s);"
? ? ? ? ? ? self.cursor.execute(sql,[self.uid])
sql ="insert into order_detail values (0,%s,%s,%s);"
? ? ? ? ? ? self.cursor.execute(sql,[self.cursor.lastrowid,pid,num])
self.conn.commit()
print('下單成功!')
else:
print('你要購買的商品已經(jīng)下架')
@staticmethod
? ? def sys_menu():
print('-------商品--------')
print('1.>>>注冊')
print('2.>>>登錄')
print('3.>>>退出')
return input('輸入功能序號(hào)')
def get_info_by_name(self):
find_name =input('請輸入你要查詢的商品的名字:')
# sql = """select * from goods where name="%s"; """%find_name
# print('-->%s<--'%sql)
# self.execute_sql(sql)
? ? ? ? sql ="select *from goods where name=%s"
? ? ? ? self.cursor.execute(sql,[])
print(self.cursor.fetchall())
@staticmethod
? ? def print_menu():
print('-------蝸牛--------')
print('1:所有的商品')
print('2:所有商品分類')
print('3:所有商品品牌分類')
print('4:添加商品分類')
print('5:添加商品品牌分類')
print('6:根據(jù)名字查詢商品')
print('7:修改商品分類')
print('8:修改商品品牌分類')
print('9:刪除商品分類')
print('10:刪除商品品牌分類')
print('11.下單')
return input('請輸入功能對(duì)應(yīng)的序號(hào):')
def run(self):
while True:
num =self.sys_menu()
if num =='1':
self.register()
elif num =='2':
if self.login():
print('登錄成功!')
break
? ? ? ? ? ? ? ? else:
print('用戶名或密碼有誤,請重新輸入。。。。')
if self.is_login:
while True:
num =self.print_menu()
if num =='1':
self.show__all__items()
elif num =='2':
self.show_cates()
elif num =='3':
self.show_brands()
elif num =='4':
self.add_cates()
elif num =='5':
self.add_brands()
elif num =='6':
# 根據(jù)名字查詢商品
? ? ? ? ? ? ? ? ? ? self.get_info_by_name()
elif num =='7':
self.update_cates()
elif num =='8':
self.update_brands()
elif num =='9':
self.delete_cates()
elif num =='10':
self.delete_brands()
elif num =='11':
self.create_order()
else:
print('輸入有誤,請重新輸入.....')
def main():
#? ? 1、創(chuàng)建一個(gè)商城對(duì)象
? ? wn = WN()
#? ? 2、調(diào)用這個(gè)對(duì)象run方法,讓其運(yùn)行
? ? wn.run()
if __name__ =='__main__':
main()