python实现mysql数据库的注册登录案例

创建MysqlHelper.py文件,定义类

import pymysql
import hashlib


class MysqlHelper():
    def __init__(self, host, database, user, password, port=3306, charset='utf8'):
        self.host = host
        self.database = database
        self.user = user
        self.password = password
        self.port = port
        self.charset = charset

    # 连接对象
    def connect(self):
        self.conn = pymysql.connect(host=self.host, database=self.database, user=self.user, password=self.password,
                                    port=self.port, charset=self.charset)
        self.cursor = self.conn.cursor()

    # 关闭
    def close(self):
        self.cursor.close()
        self.conn.close()

    # 查询一条数据
    def select_one(self, sql, params=[]):
        result = None
        try:
            self.connect()
            self.cursor.execute(sql, params)
            result = self.cursor.fetchone()
            self.close()
        except Exception as ex:
            print(ex)
        return result

    # 查询所有数据
    def select_all(self, sql, params):
        result = ()
        try:
            self.connect()
            self.cursor.execute(sql, params)
            result = self.cursor.fetchall()
            self.close()
        except Exception as ex:
            print(ex)
        return result

    # 增删改代码的封装
    def __edit(self, sql, params):
        count = 0
        try:
            self.connect()
            count = self.cursor.execute(sql, params)
            self.conn.commit()
            self.close()
        except Exception as ex:
            print(ex)
        return count

    # 增
    def insert(self, sql, params=[]):
        return self.__edit(sql, params)

    # 改
    def update(self, sql, params=[]):
        return self.__edit(sql, params)

    # 删
    def delete(self, sql, params=[]):
        return self.__edit(sql, params)

    # 密码加密
    def my_md5(self, pwd):
        my_md5 = hashlib.md5()
        my_md5.update(pwd.encode('utf-8'))
        return my_md5.hexdigest()

创建testLogin.py文件,引入MysqlHelper模块

from MysqlHelper import MysqlHelper

# 注册
def register():
    name = input('请输入用户名:')
    pwd = input('请输入密码:')

    # 连接对象
    helper = MysqlHelper(host='localhost', database='bank', user='root', password='55555')
    # 执行sql语句
    ret = helper.insert('insert into user(name,pwd) values(%s,%s)', [name, helper.my_md5(pwd)])

    if ret > 0:
        print('注册成功!')
    else:
        print('注册失败,请重新注册!')

# 登录
def login():
    name = input('请输入用户名:')
    pwd = input('请输入密码:')

    # 连接对象
    helper = MysqlHelper(host='localhost', database='bank', user='root', password='55555')
    # 执行sql语句
    ret = helper.select_one('select count(*) from user where name=%s and pwd=%s', [name, helper.my_md5(pwd)])

    if ret[0] > 0:
        print('登录成功!')
    else:
        print('登录失败,请重新登录!')


def main():
    while True:
        choice = input('1、注册    2、登录\n请输入要进行的操作:')

        if choice == '1':
            register()
        elif choice == '2':
            login()
        else:
            print('请等待版本更新!')


if __name__ == '__main__':
    main()

运行结果:
sql

猜你喜欢

转载自blog.csdn.net/op0912036/article/details/82228217