'''
建立一个新的项目
写一个类,用户,
属性有,用户名,密码,当前存款值
有注册功能
有登录功能
登录成功,可以存款
登录成功,可以取款
退出
数据库,可以是本地数据库,可以是网络数据库
如果是网络数据库,在项目里建立一个记事本文件 requirements.txt 他帮你自动保存三方模块版本
'''
import pymysql
# 以下是个类,可以单独成为一个模块
class User:
def __init__(self, name, pwd, money=0):
self.name = name
self.pwd = pwd
self.money = money
# 存款
def cunkuan(self, money):
self.money += money
print(f"存款成功,当前存款为{self.money}")
# 取款
def qukuan(self, money):
if self.money >= money:
self.money -= money
print(f"取款成功,当前存款为{self.money}")
else:
print("余额不足")
# 当前存款
def get_money(self):
return self.money
def set_money(self):
return self.money
def show_money(self):
print(f"当前存款为{self.money}")
def __str__(self):
return f"用户名:{self.name},密码:'******',当前存款为{self.money}"
# 查找某用户是否存在
def find_user(user):
"""
分析 user是否在表中
:param user:用户类
:return:
"""
name = user.name
conn = pymysql.connect(
host="mysql.sqlpub.com",
port=3306,
user="laocooon",
password="fc12f7a5215e8e0a",
database="huangjin",
)
c = conn.cursor()
c.execute("SELECT name,password,money FROM user1 WHERE name=%s", (name,))
result = c.fetchone()
if result:
return User(result[0], result[1], result[2])
else:
return None
# 注册新用户
def register_user(name, pwd):
user = User(name, pwd, 0)
if find_user(user):
print("用户已存在")
return
conn = pymysql.connect(
host="mysql.sqlpub.com",
port=3306,
user="laocooon",
password="fc12f7a5215e8e0a",
database="huangjin",
)
c = conn.cursor()
c.execute("INSERT INTO user1(name,password,money) VALUES (%s,%s,%s)", (user.name, user.pwd, user.money))
conn.commit()
c.close()
conn.close()
print("注册成功")
# 登录
def login_user(name, pwd):
user = find_user(User(name, pwd, 0))
if not user:
print("用户不存在")
return user
if user.pwd != pwd:
print("密码错误")
return
print(user)
return user
# 存款
def deposit(user, money):
user.money += money
conn = pymysql.connect(
host="mysql.sqlpub.com",
port=3306,
user="laocooon",
password="fc12f7a5215e8e0a",
database="huangjin",
)
c = conn.cursor()
c.execute("UPDATE user1 SET money=%s WHERE name=%s", (user.money, user.name))
conn.commit()
c.close()
conn.close()
print("存款成功")
# 取款
def withdraw(user, money):
if user.money < money:
print("余额不足")
return
user.money -= money
conn = pymysql.connect(
host="mysql.sqlpub.com",
port=3306,
user="laocooon",
password="fc12f7a5215e8e0a",
database="huangjin"
)
c = conn.cursor()
c.execute("UPDATE user1 SET money=%s WHERE name=%s", (user.money, user.name))
conn.commit()
c.close()
conn.close()
print("取款成功")
while True:
print("1 注册")
print("2 登录")
print("3 退出")
choice = input("请输入选项:")
if choice == "1":
name = input("请输入用户名:")
pwd = input("请输入密码:")
pwd1 = input("请再次输入密码:")
if pwd != pwd1:
print("两次密码不一致")
continue
register_user(name, pwd)
elif choice == "2":
name = input("请输入用户名:")
pwd = input("请输入密码:")
user = login_user(name, pwd)
if user:
print("登录成功")
"""登录成功后,操作取款或存款"""
while True:
print("1 存款")
print("2 取款")
print("3 查看")
print("4 退出")
choice1 = input("请输入选项:")
if choice1 == "1":
money = int(input("请输入存款金额:"))
deposit(user, money)
elif choice1 == "2":
money = int(input("请输入取款金额:"))
withdraw(user, money)
elif choice1 == "3":
print(user)
elif choice1 == "4":
break
else:
print("无效选项")
pass
else:
print("用户名或密码错误")
continue
elif choice == "3":
break
12-04
5433
