python3.6环境下 通过mysql实现持久化登录以及注册

import sys,os,pymysql,time ,hashlib
from  datetime import  datetime


def Regist():
    print("按提示信息进行账号注册:")
    while True:
        username=input("请输入您的用户名:")
        s=tool.mySQL('user').Checkall('select * from users')
        for i in s :
            isfind=False
            if username ==i[1]:
                isfind=True
                print('用户已存在请重新输入')
                break
        if isfind==False:
            pwd1 = input("请输入您的密码:")
            pwd2=input("确认您输入的密码:")
            if pwd1==pwd2:
                password = hashlib.sha1(pwd2.encode("utf-8")).hexdigest()
                registerdate = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                email = input('请输入您的邮箱:')
                tel = input('请输入您的手机号:')
                tool.mySQL('user').Update("insert into users values(0,'%s','%s','%s','%s','%s')" % (
                username, password, registerdate, email, tel))
                print("恭喜!您已成功注册奇酷学生成绩管理系统,登陆试试看吧!")
                break
            else:
                print('两次密码不一致,请重新输入')
                continue


def Login():
    while True:
        username = input("请输入用户名:")
        s = tool.mySQL('user').Checkall('select * from users')
        for i in s:
            isfind=False
            if username == i[1]:
                pwd = input('请输入密码:')
                password = hashlib.sha1(pwd.encode("utf-8")).hexdigest()
                if i[2] == password:
                    print('登录成功!!')
                    isfind=True
                    break
        break
        if isfind==False:
                input('账号或密码错误...按任意键继续')
                continue

class mySQL(object):
    def __init__(self,dataname,host='localhost',port=3306,user='root',password='123456',charset='utf8'):
        self.dataname=dataname
        self.host=host
        self.port=port
        self.user=user
        self.password=password
        self.charset=charset
        self.test=None
        self.cursor=None
        self.__connect()
    def __connect(self):
        try:
            # self.test = pymysql.connect(host="localhost", port=3306, user="root", password="123456", database="shopping")
            self.test = pymysql.connect( host=self.host, port=self.port, user=self.user, password=self.password,database=self.dataname, charset='utf8')
            self.cursor = self.test.cursor()
        except Exception as e:
            print(e)
        finally:
            pass

    def Checkone(self,checkstr,args=None):
        try:
            self.__connect()
            row=self.cursor.execute(checkstr, args)
            if row>0:
               return self.cursor.fetchone()
            else:
                return ("单条查询失败")
        except Exception as e:
            print(e)
            self.test.rollback()
        finally:
            self.__Close()
            print("操作结束")

    def Checkall(self,checkstr,args=None):
        try:
            self.__connect()
            row=self.cursor.execute(checkstr, args)
            if row>0:
                return self.cursor.fetchall()
            else:
                return ("多条查询失败")
        except Exception as e:
            print(e)
        finally:
            self.__Close()



    def Update(self,updatestr,args=None):
        try:
            self.__connect()
            row=self.cursor.execute(updatestr, args)
            self.test.commit()
            if row>0:
                return
            else:
                return
        except Exception as e:
            print(e)
        finally:
            self.__Close()


    def __Close(self):
        if self.cursor is not None:
            self.cursor.close()
        if self.test is not None:
            self.test.close()

 

 

最后写一些简单的界面  调用各个函数即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值