# 1、实现注册功能:
# 输入:username、password,cpassword
# #最多可以输错3次
# #3个都不能为空
# #用户名长度最少6位, 最长20位,用户名不能重复
# #密码长度最少8位,最长15位
# #两次输入的密码要一致
# #注册成功之后,要写到数据库里面
# ----- 将注册功能重写,注册时,每输入一个参数,
# 系统都会判断该参数是否合法,直到所有参数都合法,
# 再将用户名和密码保存到mysql数据库。
import mysql.connector
isContinue=True
isPasswd=True
isCpasswd=True
i=1
while isContinue and i<4:
username=input('请输入用户名:')
if username=="":
print('用户名不能为空,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
elif len(username)<6 or len(username)>20:
print('用户名长度应为6-20位,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
else:
mydb=mysql.connector.connect(
host='localhost',
user='root',
passwd='123456',
database='platform'
)
mycursor=mydb.cursor()
sql_select='select username from user'
mycursor.execute(sql_select)#运行查询语句
user_result=mycursor.fetchall()# 获取所有的查询结果记录
userlist=[]
for user in user_result:# 循环查询是否已存在用户名
userlist.append(user[0]) # 将所有的user存放列表中
if username in userlist:
print('该用户名已存在,请重新输入!您还有'+str(3-i)+'次机会!')
i+=1
else: # 如果没注册过则进入输入密码步骤
while isPasswd and i<4:
passwd=input('请输入密码:')
if passwd=="":
print('密码不能为空,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
elif len(passwd)<6 or len(passwd)>20:
print('密码长度应为8-15位,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
else:
while isCpasswd and i<4:
cpasswd=input('请输入确认密码:')
if cpasswd=="":
print('密码不能为空,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
elif len(cpasswd)<6 or len(cpasswd)>20:
print('密码长度应为8-15位,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
elif cpasswd!=passwd:
print('两次密码不一致,请重新输入!您还有 %d 次机会' %(3-i))
i+=1
else:# 用户名、密码校验无误后向数据库插入一条新用户名和密码数据
sql_insert='insert into user(username,passwd) values(%s,%s)'
insert_val=(username,passwd)
mycursor.execute(sql_insert,insert_val)# 执行sql语句
mydb.commit()# 提交更新操作
print('注册成功,有',mycursor.rowcount,'条数据更新成功!')
isCpasswd=False
isPasswd=False
isContinue=False