在这里插入代码片
from pymysql import *
import hashlib
from hashlib import sha1
class JD():
def __init__(self):
self.mysql=connect(host='localhost',port=,user=,password=' ',database=' ',charset='utf8')
self.conn=self.mysql.cursor()
def __del__(self):
self.conn.close()
self.mysql.close()
def execute_sql(self,sql):
self.conn.execute(sql)
for temp in self.conn.fetchall():
print(temp)
def show_all_items(self):
sql="select *from goods"
self.execute_sql(sql)
def show_all_cates(self):
sql="select name from goods_cates"
self.execute_sql(sql)
def show_all_brands(self):
sql="select name from goods_brands"
self.execute_sql(sql)
def add_cates(self):
cate_name=input("请输入要添加的商品类别:")
sql="""insert into goods_cates (name) values("%s")"""%cate_name
self.conn.execute(sql)
self.mysql.commit()
def show_select_goods(self,good_name):
#有问题待解决
sql="select * from goods where name like '%%%s%%'"%good_name
self.conn.execute(sql)
for temp in self.conn.fetchall():
print(temp)
@staticmethod
def print_menu():
print("-----欢迎来到京东商城-----")
print("1:所有的商品")
print("2:商品的分类")
print("3:所有的品牌")
print("4:添加商品类别")
print("0:退出")
return input("输入要选择的查询功能:")
def option_goods(self):
while True:
op=self.print_menu()
if op=='1':
self.show_all_items()
elif op=='2':
self.show_all_cates()
elif op=='3':
self.show_all_brands()
elif op=='4':
self.add_cates()
elif op=='0':
break
else:
print("请输入正确的选项:")
## 用户登陆和注册代码
def user_login(self):
name=input("请设置登陆姓名:")
pwd2=input("请设置登陆密码:")
pwd = hashlib.sha1(pwd2.encode("utf8")).hexdigest()
addr=input("请输入收获地址:")
tel=input("请输入电话号码:")
user_info=[name,addr,tel,pwd2]
sql='insert into customer (name,addr,tel,password)values(%s,%s,%s,%s)'
values=(user_info)
self.conn.execute(sql, values)
self.mysql.commit()
print("-----注册成功-----")
print("请重新输入用户名和密码:")
self.regist()
def regist(self):
use_name = input("请输入姓名:")
while self.num <= 3:
use_password = input("请输入用户登陆密码:")
pwd2 = sha1(use_password.encode('utf8')).hexdigest()
self.res = [use_name]
# 根据用户名查询密码
sql = 'select password,id from customer where name=%s'
self.conn.execute(sql, self.res)
psw = self.conn.fetchall()
self.user_id=psw[0][1]
print(psw[0][0])
print(psw[0][1])
if psw == ():
print("用户名错误")
elif psw[0][0] == use_password:
print("登陆成功")
self.user_shoping()
print("欢迎下次再来")
break
else:
print("密码错误")
print("请重新输入密码")
self.num += 1
if self.num==3:
print("密码输入超过3次")
self.mysql.commit()
def run(self):
self.print_jingdong()
op = input("您要登陆还是注册(1表示注册,0表示登陆):")
if op=='1':
self.user_login()
elif op=='0':
self.regist()
## 标题用户购买产品
def print_jingdong(self):
print("欢迎来到京东")
def user_shoping(self):
while True:
self.print_menu()
self.option_goods()
good_name=input("请输入要购买的产品:")
good_name_list=[good_name]
self.show_select_goods(good_name_list[0])
op=input("是否要购买查询的产品(Y or N):")
if op=='Y':
sql = 'insert into orders (customer_id)values(%s)'
values = (self.user_id)
self.conn.execute(sql, values)
self.order_info()
def order_info(self):
sql = 'select id from orders where customer_id=%s'
customer_id=self.user_id
self.conn.execute(sql,customer_id)
order_id= self.conn.fetchone()
print(order_id[0])
nums = int(input("购买的数量:"))
goods_id = int(input("输入产品id:"))
order_detail_list = [order_id[0],goods_id,nums]
sql = 'insert into order_detail (order_id,goods_id,quantity)values(%s,%s,%s)'
values = (order_detail_list)
self.conn.execute(sql, values)
print("购买成功")
主函数运行
if name==“main”:
user=User()
user.run()
该博客介绍如何使用Python的pymysql库与MySQL数据库相结合,构建一个购物管理系统的主函数运行部分,通过MD5加密增强用户数据安全性。

2668

被折叠的 条评论
为什么被折叠?



