前言:
如今你们对“python写登录系统”可能比较注重,小伙伴们都想要分析一些“python写登录系统”的相关文章。那么小编在网摘上收集了一些对于“python写登录系统””的相关资讯,希望我们能喜欢,你们快快来了解一下吧!(接上一篇文章:python 操作 mongo,MySQL,redis)
一.编写一个类
利用类来封装学生信息
class Student: def __init__(self,studentId,name,age,sex,class_id): self.studentId = studentId self.name = name self.age = age self.sex = sex self.class_id = class_id
if __name__ == '__main__': studentId = input('请输入学号:') name = input('请输入姓名:')
二.再利用 python 操作 mysql
import pymysql
db_config = { 'host':'127.0.0.1', 'port':3306, 'user':'admin', 'password':'qwe123', 'db':'coco', 'charset':'utf8'}conn = pymysql.connect(**db_config)cur = conn.cursor()
try: sql = f'SELECT * FROM `student` WHERE `id`={studentId} AND `name`="{name}";' cur.execute(sql) res = cur.fetchone() # 获取查询到的单条数据 if res: now_student = Student(*res) else: print('账号或密码错误,登陆失败') raise Exception except Exception as e: conn.rollback() # 如果执行sql语句出现了异常,则进行事务回滚 print(f'异常{e},已取消操作') else: conn.commit() # 确认没有问题,则进行事务提交 print('执行成功') finally: # 无论是否成功执行完成之后都进行资源的释放 cur.close() # 关闭游标对象 conn.close() # 关闭连接对象 print(f'当前登录的用户是:{now_student.name}')
三.我们还可以设置验证码,就只要利用 python 控制 redis 即可使用验证码
import redisimport random
redis_config = { 'host': '127.0.0.1', 'port': 6379, 'db': 0, 'decode_responses':True}db = redis.StrictRedis(**redis_config)
if __name__ == '__main__': studentId = input('请输入学号:') name = input('请输入姓名:') print('正在发送验证码。。。') code = str(random.randint(1000,9999)) db.set(f'{studentId}:verification', code, ex=60) verifications = input(f'(验证码为:{code})') verification = input(f'请输入验证码:')
(上文中的 student 是 redis 文章中已编写好的一个关于学生信息的数据库中的表格,random 模块是打印随机数。)
四.全部编程
import pymysqlimport redisimport randomclass Student: def __init__(self,studentId,name,age,sex,class_id): self.studentId = studentId self.name = name self.age = age self.sex = sex self.class_id = class_iddb_config = { 'host':'127.0.0.1', 'port':3306, 'user':'admin', 'password':'qwe123', 'db':'coco', 'charset':'utf8'}conn = pymysql.connect(**db_config)cur = conn.cursor()redis_config = { 'host': '127.0.0.1', 'port': 6379, 'db': 0, 'decode_responses':True}db = redis.StrictRedis(**redis_config)if __name__ == '__main__': studentId = input('请输入学号:') name = input('请输入姓名:') print('正在发送验证码。。。') code = str(random.randint(1000,9999)) db.set(f'{studentId}:verification', code, ex=60) verifications = input(f'(验证码为:{code})') verification = input(f'请输入验证码:') if verification != db.get(f'{studentId}:verification'): print('验证码错误 ') raise Exception now_student = None try: sql = f'SELECT * FROM `student` WHERE `id`={studentId} AND `name`="{name}";' cur.execute(sql) res = cur.fetchone() # 获取查询到的单条数据 if res: now_student = Student(*res) else: print('账号或密码错误,登陆失败') raise Exception except Exception as e: conn.rollback() # 如果执行sql语句出现了异常,则进行事务回滚 print(f'异常{e},已取消操作') else: conn.commit() # 确认没有问题,则进行事务提交 print('执行成功') finally: # 无论是否成功执行完成之后都进行资源的释放 cur.close() # 关闭游标对象 conn.close() # 关闭连接对象 print(f'当前登录的用户是:{now_student.name}')
运行:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python写登录系统 #python编写程序输出姓名学号