学习python和数据分析推荐地方: www.lynda.com获取lynda官网会员的方式:http://item.taobao.com/item.htm?id=557746408785
from pymysql import connect class JD(object): """创建一个京东的服务""" def __init__(self): """初始化操作,数据库,类属性""" # 创建一个SQL连接 self.conn = connect(host="localhost", port=3306, database="jing_dong", user="root", password="mysql", charset="utf8") # 创建一个游标 self.cursor = self.conn.cursor() self.customer_id = None def run(self): while True: JD.print_menu() option = input("输入:") if option == "1": self.show_all_goods() elif option == "2": self.log_in() pass # TODO 登陆 elif option == "3": self.register() pass # TODO 注册 elif option == "4": self.place_order() pass # TODO 下订单 elif option == "5": break pass # TODO 退出系统 def show_all_goods(self): try: sql = """select * from goods""" self.cursor.execute(sql) for item in self.cursor.fetchall(): print(item) except Exception as E: print("读取数据失败") def log_in(self): """登录操作""" user_name = input("请输入用户名:") password = input("请输入密码:") sql = """select * from user_info where user_name=%s and password=%s""" if not self.cursor.execute(sql, [user_name, password]): print("用户名或者密码错误!") return user_id = self.cursor.fetchone()[0] print("登录成功!") # 保存本地登录状态 self.customer_id = user_id def register(self): user_name = input("请输入用户名:") try: sql = """select * from user_info where user_name=%s""" if self.cursor.execute(sql, [user_name]): print("该用户名已经注册!") return password = input("请输入密码:") address = input("请输入地址:") mobile = input("请输入电话:") sql = """insert into user_info value(0, %s, %s, %s, %s)""" self.cursor.execute(sql, [user_name, password, address, mobile]) self.conn.commit() except Exception as e: print("注册失败!") self.conn.rollback() return else: print("注册成功!") def place_order(self): customer_id = int(self.customer_id) if self.customer_id is None: print("请先登录账号!") return # 选择商品,获取商品id self.show_all_goods() goods_id = input("请输入您要购买的商品编号:") sql = """select * from goods where id=%s""" if not self.cursor.execute(sql, [goods_id]): print("输入有误,请重试!") print("购买失败!") return print("您选择的商品信息为:", self.cursor.fetchall()) try: # 添加下单时间, 商品id到orders_list sql = """insert into orders_list values(0, now(), %s)""" self.cursor.execute(sql, [customer_id]) order_id = self.cursor.lastrowid # 添加order_id, goods_id 和qty到order_detail sql = """insert into order_detail VALUES(0, %s, %s, 1)""" self.cursor.execute(sql, [order_id, goods_id]) # 提交sql请求 self.conn.commit() except Exception as E: print("购买失败!", E) self.conn.rollback() return finally: print("购买成功!") @staticmethod def print_menu(): menu = """ ----欢迎来到 京东商城----- 1 显示所有商品 2 登陆 3 注册 4 下订单 5 退出系统 请开始你的选择-------: """ print(menu) def __del__(self): """退出程序,关灯""" self.cursor.close() self.conn.close() def main(): # create mall service jd = JD() # start service jd.run() if __name__ == '__main__': main()
简单的模拟京东商城购买过程-pymysql
最新推荐文章于 2024-01-10 17:03:38 发布