# 提示: 输入用户名和密码(6到10)与(与数据库中的用户名和密码进行对比一致打印登陆成功。失败注册)
from pymysql import connect
class RegLogon() :
"""用户注册登录"""
def register(self):
"""用户注册"""
try:
uname = input('请输入用户名:')
while True:
upwd = input('请输入密码:')
if not 6 <= len(upwd) <= 10:
print('请输入6到10位的密码')
continue
else:
break
# 打开与数据库的连接
conn = connect(host='localhost', port=3306, db='users', user='root', passwd='11111', charset='utf8')
cur = conn.cursor()
# 判断用户名是否存在
sql = 'select count(*) from user_pwd where name=%s'
# params = [uname]
cur.execute(sql, (uname,))
result = cur.fetchone()
if result[0]:
print('用户名已经存在,请重新注册')
else:
# 用户名不存在
sql = 'insert into user_pwd(name, pwd) values(%s, %s)'
# params = [uname, upwd]
result = cur.execute(sql, (uname,upwd))
conn.commit()
if result == 1:
print('注册成功')
else:
print('注册失败')
except Exception as e:
print('注册失败,原因是:%s' % e)
finally:
cur.close()
conn.close()
def logon(self):
try:
"""用户登录"""
uname=input("请输入用户名:")
upwd=input("请输入密码:")
# 1 连接数据库
conn = connect(host="localhost", port=3306, user="root", password="1111l", database="users", charset="utf8")
# 得到一个游标对象
cs1 = conn.cursor()
# 2, 执行sql语句
sql="""select pwd from user_pwd where name =%s """
cs1.execute(sql,(uname,))
result=cs1.fetchone()
if result==None:
print("用户名错误,登录失败")
elif result[0]==upwd:
print("登录成功")
else:
print("密码错误,登录失败")
except Exception as e:
print("登录失败,失败原因为:%s"% e)
finally:
# 关闭
cs1.close()
conn.close()
def run(self):
"""打印菜单并运行"""
"""用户登录注册"""
while True:
print("1,注册")
print("2,登录")
print("3,退出")
action = input("请输入数字:")
if action == "1":
self.register()
elif action == "2":
self.logon()
elif action == "3":
break
def main():
# 运行服务
# run()
user = RegLogon()
user.run()
if __name__ == '__main__':
main()
用python连接数据库,实现注册和登录
最新推荐文章于 2024-03-12 21:06:37 发布