python实现登录购物_python 操作mysql数据库之模拟购物系统登录及购物

from conf.confsetting importHOST,USER,PASSWD,DB_NAMEfrom lib.mysql importop_mysqldeflogin(u_name, u_pass):"用户登录"name=str(u_name)

passwd=str(u_pass)

res=Noneif not name or notpasswd:print("error,用户名或密码不能为空!")else:

my_sql= "select u.u_id,u.u_name,u.u_passwd,u.money,u.role from userinfo u where u.u_name='%s';" %name

user_info= op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)if len(user_info) ==0:print('error,用户名不存在')else:for u in user_info: #可能存在同名

if u['u_passwd'] ==passwd:print('用户:{u} 登录成功!'.format(u=u))

res=uif notres:print('error,密码输入错误')returnresdefget_goods():"查询所有商品"my_sql= "select p.* from product p;"goods_info= op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)print('success,查询所有商品成功,商品信息:', goods_info)returngoods_infodefbug_goods(u_info, g_name):"用户购买商品"res=None

g_name=str(g_name)if notg_name :print('购买商品名称不能为空!')else:

goods_info=get_goods()for i inrange(len(goods_info)):if goods_info[i]['p_name'] ==g_name:if u_info['money'] < goods_info[i]['p_price']:

res= '余额不足购买商品失败!', goods_info[i]else:

new_money= u_info['money'] - goods_info[i]['p_price']

new_money=round(new_money,2)

my_sql_1= "update userinfo set money = '%d' where u_id = '%d';"%(new_money,u_info['u_id'])

my_sql_2= "INSERT INTO carts (u_id,p_id) VALUES('%d','%d');"%(u_info['u_id'],goods_info[i]['p_id'])

op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql_1)

op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql_2)

res= '购买商品成功!', goods_info[i]if notres:

res= 'error ,购买商品%s不存在'%g_namereturnresdefget_carts_money(u_id):"查询用户购物车、余额"my_sql= "select u.money from userinfo u where u.u_id ='%d';"%u_id

u_money= op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)

my_sql= "select p.p_name from userinfo u ,carts c ,product p where u.u_id='%d'and u.u_id =c.u_id and c.p_id= p.p_id;"%u_id

u_cart= op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)return "账户余额:{m} 购物车:{c}".format(m =u_money,c =u_cart)defadd_goods(g_name, g_price):"添加商品"

if notg_name:return 'error,添加商品失败,商品名称必须输入'price= round(float(g_price), 2)if price <=0:return 'error,添加商品失败,商品价格须大于0'my_sql= "insert into product(p_name,p_price) values('%s','%s');"%(g_name,g_price)

op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)return 'success,添加商品:%s成功'%g_namedefrecharge(u_id, amount):"输入用户ID给用户充值"u_id=int(u_id)

u_amount= round(float(amount), 2)if u_amount <=0:return 'error,充值金额须大于0'my_sql= "select u.u_name,u.money from userinfo u where u.u_id ='%d';" %u_id

user_info= op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)if len(user_info) ==0:return '用户id不存在'new_money= user_info[0]['money'] +u_amount

my_sql= "update userinfo set money = '%d' where u_id = '%d';"%(new_money,u_id)

op_mysql(host=HOST, user=USER, passwd=PASSWD, db=DB_NAME, sql=my_sql)return 'success,给用户:%s 充值%s 元 成功'% (user_info[0]['u_name'],u_amount)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值