怎么会有研究僧现在才被迫学python啊
课程结课要写个酒店管理系统,在实现员工登录模块时发现网上的干货很少,尤其是在判断输入的内容是否存在于数据库时犯了难,特此总结一下,希望能帮到跟我一样的小白。
def login():
while True :
try:
sql = 'SELECT * FROM staff_info WHERE id=%s'
s_id = input('请输入员工id:')
value = (s_id)
cur.execute(sql,value)
result = cur.fetchall()
# print(result)
if result == () : # ()不等于None
print('输入的id有误,请重新输入')
else :
s_code = input('请输入密码:')
for row in result:
id = row[0]
name = row[1]
code = row[2]
if s_code == code :
print('欢迎使用酒店管理系统!')
break
else :
print('输入的密码有误,请重新输入')
except pymysql.Error as error:
print('登录模块有误' + str(error))
首先输入id,若不存在时fetchall()得到的仅仅为(),因此添加判断语句,若result == ()则回到循环,重新输入。
特别需要注意的是()不等同于None,自己在网上看到别人判断结果写的None,实际跑起来不会回到循环,而是继续要求输入密码再报错。
密码输入也正确时,退出login模块的循环,执行main的后续操作。