精华内容
下载资源
问答
  • 主要为大家详细介绍了适合初学者学习的Python3银行账户登录系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本文实例为大家分享了python实现登录注册系统的具体代码,供大家参考,具体内容如下 实现功能 1.调用文本文件里的用户信息 2.可以将注册信息存储在文本文件里 3.实现了密码格式的限制 具体用户信息将如下格式存储...
  • 本文实例讲述了Python实现登录验证系统。分享给大家供大家参考,具体如下: 小型登录注册验证系统 一、概述 ​ 使用Redis+MySQL数据库实现一个小型的登录注册验证系统。在这个系统中初步了解认识MVC框架。 ​ 具备...
  • python实现简单的用户注册和用户登录系统 #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ # Date: 2019/8/1 0001 19:56 # Author: Mijiu # Version: 1.0 from login import login from fourcode import...
     python实现简单的用户注册和用户登录系统
    
    #!/usr/bin/env python3
    # _*_ coding: utf-8 _*_
    # Date: 2019/8/1 0001 19:56
    # Author: Mijiu
    # Version: 1.0
    
    from login import login
    from fourcode import code
    import re
    import hashlib
     
    #--------------------------------注册系统实现--------------------------------------------------------------
                            
    
    
    
    def newuser(code):
        while True:
            print("                    -----      会员注册界面      ------")
            print("                              ")
            name = re.match("([a-z]|[A-Z]){3,}", input("注册需要的用户名(大于三位全英文):  "))
            passwd = re.match("\d{6,}", input("请设置密码(必须大于6位全数字):"))
            phone = re.match("1\d{10}",input("请绑定您的手机号用于找回密码: "))
            age = re.match("\d\d",input("请输入您的年龄:"))
            # print(f"验证码:     [{code}]")
            # while True:
            #     input_code = input("请输入验证码(区分大小写):   ")
            #     if input_code == code:
    
            if name and passwd and phone and age:
                name=name.group()
                passwd = passwd.group()
                phone = phone.group()
                age = age.group()
                print(f"验证码:     [{code}]")
                while True:
                    input_code = input("请输入验证码(区分大小写):   ")
                    if input_code == code:
                        print("-"*20)
                        print("注册成功,欢迎成为会员")
                        print("-" * 20)
                        mdpasswd = hashlib.md5(f'{passwd}'.encode())
                        md5passwd = (mdpasswd.hexdigest())
    
                        with open("file_name.txt","a",encoding="utf-8") as f:
                            f.write(f"{str(name)}:{(md5passwd)}:{phone}:{age},")
    
    
                            return True
    
    
    
    
    
                    else:
                        print("验证码输入有误:")
                        continue
    
            else:
                print("注册内容中不符合规则")
                continue
    
    #!/usr/bin/env python3
    # _*_ coding: utf-8 _*_
    # Date: 2019/8/2 0002 16:40
    # Author: Mijiu
    # Version: 1.0
    import hashlib
    from fourcode import code
    import time
    
    
    
    #--------------------------------登录系统实现--------------------------------------------------------------
    
    
    
    
    def login(code__):
        with open("file_name.txt", "r", encoding="utf-8") as f:
            # userlis = []
            a = f.readlines()
            str2 = ''.join(a)
            userlis = str2.split(",")  # 用户信息列表
            n= 6
            while n > 0:
                print("-----      登录界面     ------")
                print("                              ")
    
                uname = input("请输入用户名:   ")
                upasswd = input("请输入密码:   ")
                while True:
                    print(f"验证码:    [{code__}]")
    
                    usercode = input("请输入验证码:")
                    if usercode == code__:
    
                        mdpasswd = hashlib.md5(f'{upasswd}'.encode())
                        md5passwd = mdpasswd.hexdigest()
    
                        for i in userlis:
    
                            if uname in i and md5passwd in i:
                                print("--------   系统消息  ---------")
                                print("                              ")
                                print("         恭喜您登录成功        ")
                                print("                              ")
                                print("------------------------------")
                                year,mon,day,hour,min,sec = time.localtime()[:6]
                                print(f"    {year}年{mon}月{day}号  {hour}.{min}.{sec}")
    
                                exit()
                        else:
                            if n != 1:
                                print("用户名或密码错误!")
                                print(f"您还有{n-1}次机会,如果未登陆成功将会锁定")
                                break
                            else:
                                print("用户已锁定,需要通过手机号解锁")
                                exit()
                    else:
                        print("验证码输入错误!")
                        continue
    
                n -= 1
    
    
    #!/usr/bin/env python3
    # _*_ coding: utf-8 _*_
    # Date: 2019/8/2 0002 15:49
    # Author: Mijiu
    # Version: 1.0
    import random
    
    
    #--------------------------------随机生成4位验证码--------------------------------------------------------------
    
    
    
    def code():
        code = ''
        for i in range(4):        # 循环4位
            cur = random.randrange(0,4)     # 随机一个顺序
            if cur != i:
                temp = chr(random.randint(65,90))  # chr函数会把整数转换成字符
            else:
                temp = random.randint(0,9)
            code += str(temp)
        return code
    
    
    
    
    # _*_ coding: utf-8 _*_
    # Date: 2019/8/2 0002 19:19
    # Author: Mijiu
    # Version: 1.0
    from newuser import newuser
    from demo_login import login
    from fourcode import code
    
    
    #--------------------------------主函数--------------------------------------------------------------
    
    def main():
        while True:
            print("---------   界面  ----------")
            print("  1. 注册")
            print("  2. 登陆")
            print("  3. 锁定用户解封")
            user_input = input(">>>> ")
            if user_input == "1":
                newuser(code())
            elif user_input == "2":
                login(code())
            elif user_input == "3":
                pass
            elif user_input =="q" or user_input == "Q":
                exit()
    
    
    
    
    
    
    main()
    
    
    
    展开全文
  • 1.注册系统 2.根据注册的信息进行登录 3.登录时密码输入错误五次自动锁定 4.通过注册时的绑定手机号,可以对被锁定用户进行解锁 -----------------------------------注册模块--------------------------------------...

    实现功能:

    1.注册系统
    2.根据注册的信息进行登录
    3.登录时密码输入错误五次自动锁定
    4.通过注册时的绑定手机号,可以对被锁定用户进行解锁

    -----------------------------------注册模块--------------------------------------
    
    
    from login import login
    from fourcode import code
    import re                    # 引入正则模块
    import hashlib           # 加密模块
    
    
    
    def newuser(code):                    # code用来接收验证码
        while True:
            print("                    -----      会员注册界面      ------")
            print("                              ")
            name = re.match("([a-z]|[A-Z]){3,}", input("注册需要的用户名(大于三位全英文):  "))
            passwd = re.match("\d{6,}", input("请设置密码(必须大于6位全数字):"))
            phone = re.match("1\d{10}",input("请绑定您的手机号用于找回密码: "))
            age = re.match("\d\d",input("请输入您的年龄:"))
                                                       
    
            if name and passwd and phone and age:                                # 判断用户名密码电话和年龄是否都符合正则
                name=name.group()
                passwd = passwd.group()
                phone = phone.group()
                age = age.group()
                print(f"验证码:     [{code}]")                                                  # 显示验证码
                while True:
                    input_code = input("请输入验证码(区分大小写):   ")       #    判断输入的验证码是否正确
                    if input_code == code:                                                   # 如果输入正确,注册成功
                        print("-"*20)
                        print("注册成功,欢迎成为会员")
                        print("-" * 20)
                        mdpasswd = hashlib.md5(f'{passwd}'.encode())               
                        md5passwd = (mdpasswd.hexdigest())                      # 把用户设置的密码进行加密
    
                        with open("file_name.txt","a",encoding="utf-8") as f:
                            f.write(f"{str(name)}:{(md5passwd)}:{phone}:{age},")    # 用户所有数据写入文件中保存
    
    
                            return True
    
    
    
    
    
                    else:
                        print("验证码输入有误:")
                        continue
    
            else:
                print("注册内容中不符合规则")
                continue
    
    
    
    
    #!/usr/bin/env python3
    # _*_ coding: utf-8 _*_
    # Date: 2019/8/3 0003 10:00
    # Author: Mijiu
    # Version: 1.0
    
    
    ---------------------------------登录-------------------------------------
    
    
    import hashlib       
    
    import time         # 时间模块
    from newuser import newuser
    import random       # 随机数模块
    
    def open_user():
        """读取已注册成功的用户信息"""
        with open("file_name.txt", "r", encoding="utf-8") as f:             # 打开用户信息文件
          
            a = f.readlines()                      # 用a接收用户数据文件
            str2 = ''.join(a)
            userlis = str2.split(",")  # 用户信息列表 
    
            return userlis
    
    
    def black_user():
        """读取黑名单用户列表"""
        with open("black_user.txt", "r")as ff:          
            lock_black = ff.readlines()                 # 取出黑名单文件的数据
            str3 = ''.join(lock_black)
            black_userlis = str3.split(",")  # 黑名单用户列表
           
            return black_userlis
    
    
    def pd_black(func):                   # func为传入的黑名单
        """判断用户是否在黑名单(被锁定)"""
    
        while True:
            print("-----      登录界面     ------")
            print("                              ")
            uname = input("请输入用户名:   ")
            for j in func:                       # 遍历黑名单
    
                if uname in j:                 # 判断此次登陆的用户是否在黑名单中
                    print("对不起,您的用户名已锁定,暂时不允许使用!")
                    return main()            # 如果在黑名单中,就返回主页面
            else:
                return uname  # 返回不是黑名单的正常用户          # 如果不在黑名单中,返回此次登陆的用户
    
    N = 5          # 全局变量
    
    
    def pd_passwd(name, userlis):
        """判断用户名密码是否正确函数"""
        global N              # global 关键字在局部修改全局变量
        while N >= 0:     
            upasswd = input("请输入密码(如果5次错误将锁定用户,暂时无法登陆!,):")
            mdpasswd = hashlib.md5(f'{upasswd}'.encode())
            md5passwd = mdpasswd.hexdigest()        # 把此时用户登录时的密码进行加密后和用户数据库里进行对比
    
            for i in userlis:  # 循环已注册列表信息
    
    
                if name in i and md5passwd in i:     # 把此时用户登录时的用户名和加密后密码在用户数据库里进行对比
                    print("--------   系统消息  ---------")
                    print("                              ")
                    print("         恭喜您登录成功        ")
                    print("                              ")
                    print("------------------------------")
                    year, mon, day, hour, min, sec = time.localtime()[:6]
                    print(f"    {year}年{mon}月{day}号  {hour}.{min}.{sec}")
    
                    exit()
            print('输入错误!')
            if N == 0:
                print("--------   系统消息  ---------------")
                print("                              ")
                print("您的用户已被锁定,请通过绑定手机号解锁!")
                print(" ")
                print("-----------------------------------")
                return name         # 如果输错五次返回那个用户名
            N-=1
            print('您还剩%d次机会' % N)
            return pd_passwd(name, userlis)       # 返回登录界面
    
    
    
    def join_black(uname):        # uname 为输错五次密码的用户名
        """把登录失败超过5次用户加入黑名单"""
        with open("black_user.txt", "a", encoding="utf-8") as f:
            f.write(f",{str(uname)}")        # 把此用户写入黑名单
    
    
    
    
    
    def open_key(black, user):  # 黑名单列表 , 会员列表
        """解除锁定用户函数"""
        while True:
           
            key_name = input("请输入您要解锁的用户名:   ")
            print("  ")
            print("  ")
            for i in black:  # 查看该用户是否在黑名单中
    
                if key_name == i:  # 如果在黑名单中就让输入手机号
                    phone = input("请输入该用户名绑定的手机号:")
                    if pdcode(code()):       # 判断验证码是否输入正确
                        for j in user:  # 循环会员信息
    
                            if key_name in j and phone in j:  # 判断用户名和绑定手机号是否一致
    
                                print("--------   系统消息  ---------")
                                print("                              ")
                                print(f"   用户{key_name}已解除锁定    ")
                                print("                              ")
                                print("------------------------------")
                                year, mon, day, hour, min, sec = time.localtime()[:6]
                                print(f"    {year}年{mon}月{day}号  {hour}.{min}.{sec}")
                                for v, y in enumerate(black):  # 循环黑名单    删除解锁用户
                                    if key_name == y:          # 从黑名单中删除
                                        black.pop(v)
                                        b = ",".join(black)
                                        with open("black_user.txt", "w", encoding="utf-8") as f:
                                            f.write(f"{str(b)}")   # 删除解锁用后把剩下的继续写入文件
                                    else:
                                        continue
    
                                return main()
                        print("  ")
                        print("  ")
                        print("绑定手机号错误")
                        return open_key(black, user)
                            # else:
    
                            #     print("  ")
                            #     print("  ")
                            #     print("绑定手机号错误")
    
                    break
                # else:
                #     continue
    
                else:
    
                    continue
            else:
                print("  ")
                print("  ")
                print("该用户未被锁定(请核实)!")
    
    
    def pdcode(code_):
        """判断验证码是否输入正确的函数"""
        while True:
            print(f"验证码:    [{code_}]")
            print("  ")
            print("  ")
            usercode = input("请输入验证码:")  # 接收输入的验证码
            if usercode == code_:  # 判断如果验证码输入正确
                return True
            else:
                print("---验证码----    输入错误,请重新输入!")
                continue
    
    
    
    
    
    def code():
        """验证码函数"""
        code = ''
        for i in range(4):        # 循环4位
            cur = random.randrange(0,4)     # 随机一个顺序
            if cur != i:
                temp = chr(random.randint(65,90))  # chr函数会把整数转换成字符
            else:
                temp = random.randint(0,9)
            code += str(temp)
        return code
    
    
    
    
    def main():                  # 主函数
        while True:
            print("---------   界面  ----------")
            print("  1. 注册")
            print("  2. 登陆")
            print("  3. 锁定用户解封")
            print("  4. 退出按Q或q")
            user_input = input(">>>> ")
    
            if user_input == "1":
                newuser(code())
            elif user_input == "2":
                join_black(pd_passwd(pd_black(black_user()),open_user()))
            elif user_input == "3":
                open_key(black_user(),open_user())
            elif user_input =="q" or user_input == "Q":
                exit()
    
    
    
    main()      # 运行主函数
    
    
    展开全文
  • python实现登录验证系统(搭建MVC框架)

    千次阅读 2018-05-16 20:29:42
    ​ 使用Redis+MySQL数据库实现一个小型的登录注册验证系统。在这个系统中初步了解认识MVC框架。 ​ 具备功能:登录注册、改密、注销。 ​ 数据库:Redis,MySQL。 ​ 开发语言:Python。 ​ MVC框架:MVC全名...

    小型登录注册验证系统

    关注公众号“轻松学编程”了解更多。

    一、概述

    ​ 使用Redis+MySQL数据库实现一个小型的登录注册验证系统。在这个系统中初步了解认识MVC框架

    ​ 具备功能:登录、注册、改密、注销。

    ​ 数据库:RedisMySQL。使用Redis把用户信息存储在内存中,查询数据快。MySQL存储空间更大,对表之间的关系管理更好。两者结合使用发挥各自的优势已是当下流行的数据库使用方式。

    ​ 开发语言:Python

    ​ MVC框架:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    二、代码

    云盘:源码链接:https://pan.baidu.com/s/184igcfqY6JcaA5oR_7Ypbg 密码:rja6
    GitHub:https://github.com/liangdongchang/pyCheckLoginSys.git

    1、Init

    用来初始化服务:

    1、在mysql上新建一个数据库“homework”和建表"t_usr"

    2、开启redis服务程序

    '''
    @author ldc
    
    '''
    import os
    import pymysql
    
    
    '''
    初始化服务:
    1、在mysql上新建一个数据库“homework”和建表"t_usr"
    2、开启redis服务程序
    '''
    # 建立数据库连接
    conn = pymysql.connect(
       host='localhost',
       user='root',
       password="123456",
       port=3306
    )
    # 获取游标
    cursor = conn.cursor()
    
    # 创建数据库
    dbname = 'homework'
    sql='''
          create database if not EXISTS %s charset=utf8;
        '''%dbname
    
    cursor.execute(sql)
    # 使用数据库
    cursor.execute('use %s'%dbname)
    # 创建表
    sql = '''
        create table if not EXISTS t_usr(
              id INTEGER PRIMARY KEY auto_increment,
              username varchar(20) unique not null,
              password varchar(20) not null
            );
    '''
    cursor.execute(sql)
    # 关闭游标与连接
    cursor.close()
    conn.close()
    
    # 开启redis服务,新建一个启动redisd.bat文件,
    #以后开启redis服务就可以直接打开这个文件了
    def openRedisd(path):
       rPath = """@echo off
                redis-server %s
                pause"""%path
       with open(r"C:\Users\LDCPC\Desktop\启动redisd.bat","w",encoding="ANSI") 
       as f:
          f.write(rPath)
    
    openRedisd(r"D:\ruanjian\redis-64.2.8.2101\redis.windows.conf")
    # 打开文件“启动redisd.bat”
    os.popen(r"C:\Users\LDCPC\Desktop\启动redisd.bat")
    

    2、View层

    用来与用户交互:接收用户的输入和显示结果给用户。

    '''
    @author ldc
    '''
    from controller import urls
    from model.model import User
    from utils.dbUtil import RedisUtil
    
    '''
    需求:登录注册验证
    1、登录
    2、注册
    3、改密
    4、注销
    '''
    # 主界面接口
    def index():
    	while True:
    		#登录界面
    		print("********************************")
    		print("*                              *")
    		print("*    (1) 登录      (2)注册     *")
    		print("*    (3) 改密      (4)注销     *")
    		print("*            (5)退出           *")
    		print("********************************")
    		print()
    		num = input("请输入功能序号:")
    		if num in ['1','2','3','4','5']:
    			return num
    		else:
    			print("输入有误,请重新输入!!!")
    # 输入账号与密码
    def inputInfo():
    	return input("请输入账号和密码(逗号隔开):").split(',')
    
    
    if __name__ == '__main__':
    	# 连接redis数据库
    	RedisUtil.connect()
    	while True:
    		# 初始化界面
    		num = index()
    		# 输入账号密码
    		username, password = inputInfo()
    		# 实例化一个用户类
    		user = User(username, password)
    		if num == '1':
    			urls.login(user)  #登录
    		elif num == '2':
    			urls.regist(user)  # 注册
    		elif num == '3':
    			urls.changePasswd(user)  # 改密
    		elif num == '4':
    			urls.deleteUser(user)  # 注销
    		else:
    			break
    

    3、Controller层

    实现业务逻辑,控制整个系统的实现流程。

    '''
    @author ldc
    
    '''
    from model.model import UserDao
    
    # 先查询该用户是否存在数据库中
    def exists(user):
       '''先查看Redis缓存中是否有该用户数据'''
       if not UserDao.exists(user.username, 'redis'):
          '''然后在mysql中查询该用户是否存在'''
          if UserDao.exists(user.username, 'mysql'):
             # 若在mysql存在就把该用户写进redis,
             UserDao.redis.set(user.username, user.password)
             return 'mysql'
          else :
             return None
       return 'redis'
    
    '''
    # 登录模块
    先在redis上验证,验证成功则提示在redis上验证成功
    否则到mysql中验证,验证成功则提示在mysql上验证成功
    否则提示用户不存在
    '''
    def login(user):
       print("------------登录界面------------")
       # 查询该用户信息是否存在数据库中
       whereDB = exists(user)
       if whereDB == 'redis':
          # 匹配密码是否正确
          if UserDao.query(user, 'redis') == user.password:
             print("[在redis中查询到该用户]登录成功!!!")
             return 1
          else:
             print("[在redis中查询到该用户] 登录失败,用户名或者密码不正确!!!")
       elif whereDB == 'mysql':
          # 匹配密码是否正确
          if UserDao.query(user, 'mysql'):
             print("[在mysql中查询到该用户] 登录成功!!!")
             return 1
          else:
             print("[在mysql中查询到该用户] 登录失败,用户或者密码不正确!!!")
       else:
          print("[在mysql中查询不到该用户]登录失败,该用户不存在,请注册后再登录!!!")
       return 0
    
    '''
    # 注册模块
    先在redis上查询账号是否存在,存在则注册失败
    否则到mysql上查询,用户存在则注册失败
    否则注册成功,把账号写进mysql,写进redis
    '''
    def regist(user):
       print("------------注册界面------------")
       # 查询该用户信息是否存在数据库中
       whereDB = exists(user)
       if whereDB :
          print("注册失败,该用户已存在!!!")
       else:
          if UserDao.insert(user):
             print("注册成功!!!")
          else:
             print("注册失败!!!")
    '''
    # 修改密码模块
    先在redis上和mysql上查询,用户存在就在mysql上修改该用户密码,
    然后把该用户信息重新写进redis中
    在mysql中查询不到该用户,就返回该用户不存在,改密失败
    '''
    
    def changePasswd(user):
       print("------------改密界面------------")
       # 查询该用户信息是否存在数据库中
       whereDB = exists(user)
       if whereDB:
          user.password = input("请输入新密码:")
          if UserDao.changePasswd(user):
             print("改密成功!!!")
          else:
             print("改密失败!!!")
       else:
          print("用户不存在,改密失败!!!")
    
    '''
    # 注销用户模块
    先在在redis上和mysql上查询,用户存在就在mysql和redis上删除该用户
    在mysql中查询不到该用户,就返回该用户不存在,注销失败
    '''
    
    def deleteUser(user):
       print("------------注销界面------------")
       # 查询该用户信息是否存在数据库中
    
       if login(user):
          if UserDao.deleteUser(user):
             print("注销成功!!!")
             return
       print("注销失败!!!")
    

    4、Model层

    用来访问数据库,实现业务逻辑与数据库分离,易于维护系统。

    '''
    @author ldc
    
    '''
    from utils.dbUtil import RedisUtil, MySQLUtil
    
    # 用户模型类
    class User:
    	def __init__(self,username,password):
    		self.username = username
    		self.password = password
    
    # UserDao
    # 封装了对User数据的增删改查
    # Dao=Database Access Object 数据库访问对象
    class UserDao:
    	# 创建数据库对象
    	redis = RedisUtil()
    	mySQL = MySQLUtil('homework','t_usr')
    
    	# 执行数据库查询操作,返回查询结果
    	@classmethod
    	def query(cls,user,dbType):
    		dataDict = {}
    		dataDict["username"] = user.username
    		dataDict["password"] = user.password
    		if dbType == 'redis':
    			return cls.redis.get(user.username)
    		elif dbType == 'mysql':
    			return cls.mySQL.query(dataDict)
    
    	# 执行数据库查询操作,查询用户是否存在,返回查询结果
    	@classmethod
    	def exists(cls,username,dbType):
    		dataDict = {}
    		dataDict["username"] = username
    		if dbType == 'redis':
    			return cls.redis.exists(username)
    		elif dbType == 'mysql':
    			return cls.mySQL.exists(dataDict)
    		else:
    			pass
    
    	# 执行数据插入操作,先把用户信息添加进mysql,然后再添加进redis
    	@classmethod
    	def insert(cls, user):
    		dataDict = {}
    		dataDict["username"] = user.username
    		dataDict["password"] = user.password
    		if cls.mySQL.insert(dataDict):
    			cls.redis.set(user.username,user.password)
    			return 1
    		else:
    			print("注册失败,服务器繁忙!!!")
    			return 0
    	
    	# 修改密码
    	@classmethod
    	def changePasswd(cls, user):
    		dataDict = {'changeCol': 'password = %s'%user.password,
    		 'caluse' : 'username = %s'%user.username}
    		if cls.mySQL.update(dataDict):
    			cls.redis.set(user.username,user.password)
    			return 1
    		else:
    			print("修改密码失败,服务器繁忙!!!")
    			return 0
    	
    	# 注销用户
    	@classmethod
    	def deleteUser(cls, user):
    		dataDict = {'username' : user.username}
    		if cls.mySQL.delete(dataDict):
    			cls.redis.delete(user.username)
    			return 1
    		else:
    			print("修改密码失败,服务器繁忙!!!")
    			return 0
    

    5、Utils工具包

    用来实现数据库的增删改查,可以被不同的系统调用。

    '''
    @author ldc
    
    '''
    import pymysql
    import redis as redis
    
    '''
    MySQL增删改查操作类
    '''
    class MySQLUtil:
       def __init__(self,dbName,tableName):
          self.dbName = dbName
          self.tableName = tableName
    
       # 连接数据库,并生成全局可用的连接对象和查询游标
       def connect(self):
          self.conn = pymysql.connect(
             host='localhost', user='root', password="123456",
             database=self.dbName, port=3306,
          )
          self.cursor = self.conn.cursor()
    
       # 关闭全局游标,断开全局连接
       def disconnect(self):
          self.cursor.close()
          self.conn.close()
    
       # 查询用户名是否存在
       def exists(self,dataDict):
          caluse = ''
          for key,value in dataDict.items():
             caluse += key + '="'+ value + '"'
          # print(caluse)
          sql = """
                select * from %s where  %s ;
               """ % (self.tableName, caluse)
          return self.execute(sql)
       # 验证用户名和密码是否正确
       def query(self, dataDict):
          # 查询子条件拼接
          caluse = ''
          for key, value in dataDict.items():
             caluse += key + '="' + value + '" and '
          caluse = caluse[:-4]
          # print(caluse)
          sql = """
                select * from %s where %s;
                """% (self.tableName, caluse)
          return self.execute(sql)
    
       # 添加新用户
       def insert(self, dataDict):
          # sql语句拼接
          columns = ''
          values = ''
          for key, value in dataDict.items():
             columns += key + ','
             values += '"' + value + '",'
          columns = columns[:-1]
          values = values[:-1]
          sql = """
                insert into %s (%s) VALUES (%s);
               """ % (self.tableName, columns,values)
          # print(sql)
          return self.execute(sql)
    
       # 更新
       def update(self, dataDict):
          # sql语句拼接
          changeCol = dataDict['changeCol']  #要改变值的列名
          caluse = dataDict['caluse']  #要改变值的子条件
          sql = 'update %s set %s where %s'%(self.tableName,changeCol,caluse)
          return self.execute(sql)
    
       # 删除
       def delete(self, dataDict):
          # sql语句拼接
          caluse = ''
          for key,value in dataDict.items():
             caluse += key + '="' + value + '"'
    
          sql = """
                delete from %s where %s;
               """ % (self.tableName,caluse)
          # print(sql)
          return self.execute(sql)
       # print(sql)
    
       # 执行sql语句
       def execute(self, sql):
          self.connect()
          affected = 0
          try:
             affected = self.cursor.execute(sql)
          except BaseException as e:
             print(e)
             affected = 0
          finally:
             self.conn.commit()
             self.disconnect()
             return affected
    
    '''
    redis增删改查操作类
    '''
    class RedisUtil:
       # redis连接
       @classmethod
       def connect(cls):
          cls.client = redis.Redis(
             host='localhost', port=6379,
             db=1, password='123456',
          )
    
       # 判断键是否存在
       @classmethod
       def exists(cls,key):
          return cls.client.exists(key)
    
       # 存储键值,
       @classmethod
       def set(cls,key,value):
          # 键值存储在缓存中,保留时间为30秒
          cls.client.setex(key,value,30)
    
       # 获取键值
       @classmethod
       def get(cls,key):
          res = cls.client.get(key).decode("utf-8")
          return res
       # 删除键值
       def delete(cls, key):
          cls.client.delete(key)
    

    6、部分功能展示

    注册:

    这里写图片描述

    登录:

    这里写图片描述

    改密:

    这里写图片描述

    注销:

    这里写图片描述

    后记

    【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

    也可加我微信【1257309054】,拉你进群,大家一起交流学习。
    如果文章对您有帮助,请我喝杯咖啡吧!

    公众号

    公众号

    赞赏码

    关注我,我们一起成长~~

    展开全文
  • python实现的简单用户注册登录系统

    千次阅读 2013-03-14 19:44:08
    users = {} def register():  while True:  user = input('name: ')  if user in users:  print('name is exit')  continue  else:  pwd = i


    users = {}


    def register():
        while True:
            user = input('name: ')
            if user in users:
                print('name is exit')
                continue
            else:
                pwd = input('password: ')
                users[user] = pwd
                print('registe success!\nyour name :%s, pwd : %s' % (user, pwd))
                break


    def login():
        if len(users) == 0:
            print('pelease registe first!')
            register()
            return
        while True:
            user = input('name: ')
            if user not in users:
                print('name is not exits')
                continue
            else:
                pwd = input('password: ')
                if users[user] == pwd:
                    print('login success!')
                    break
                else:
                    print('login fail!')




    title = 'command: '
    while True:
        choice = input(title).strip().lower();
        if choice.upper() == 'E':
            print('exit')
        if choice.upper() == 'R':
            register()
        if choice.upper() == 'L':
            login()
        
        
        
    展开全文
  • 设计一个拥有注册登录、退出功能的小程序。 一、接口提供方 (1)使用面向对象思想,将方法封装到某个类中。 (2)创建一个独立的包、模块存放这个类。 (3)提供注册功能:需要输入“手机号码”、“密码”、...
  • Python实现图书管理系统

    万次阅读 2019-06-26 09:44:05
    Python实现图书管理系统 功能描述 1.界面分为两个部分,分别是(1)登录注册界面(2)图书管理系统界面 2.用户名和密码提前存储在列表中,输入用户名或密码错误提示重新输入,未注册的需要先注册帐号密码,再...
  • CGI编程:实现登录注册系统 功能:用MySQL存储,实现登录注册系统 环境:Python + MySQL5.5.27 + Apache2.4 +pymsql(连接MySQL第三方库) 编译环境:本人使用的为 anaconda + pycharm 步骤: 1.预先创建用于存储...
  • 基于Python的用户管理小系统,包含文件读写操作,实现了用户信息注册登录的简单功能。 class userLogReg: Created on 2018.11 @author: tox33 def __init__(self): :param userFile: 操作的文件 ...
  • Python实现简单的注册登录系统

    万次阅读 2014-10-14 13:18:36
    我们做的注册登录系统是有注册功能和登录功能,注册后服务器将注册信息存储到本地,登录时验证注册消息是否正确。web.py里面有一些template里面已经有了一些支持,具体代码如下: # -*- coding: cp936 -*- import...
  • 基于Python的用户管理小系统,包含文件读写操作,实现了用户信息注册登录的简单功能。 class userLogReg: """ Created on 2018.11 @author: tox33 """ def __init__(self): ...
  • 基于Python的用户管理小系统,包含文件读写操作,实现了用户信息注册登录的简单功能。class userLogReg:"""Created on 2018.11@author: tox33"""def __init__(self):""&...
  • 基于Python的用户管理小系统,包含文件读写操作,实现了用户信息注册登录的简单功能。class userLogReg:"""Created on 2018.11@author: tox33"""def __init__(self):""&...
  • 基于Python的用户管理小系统,包含文件读写操作,实现了用户信息注册登录的简单功能。class userLogReg:"""Created on 2018.11@author: tox33"""def __init__(self):""&...
  • 设计一个拥有注册登录、退出功能的小程序。 一、接口提供方 (1)使用面向对象思想,将方法封装到某个类中。 (2)创建一个独立的包、模块存放这个类。 (3)提供注册功能:需要输入“手机号码”、“密码”、...
  • 简单登录注册界面的实现 代码最终实现效果: 实现代码如下: while True: print("英雄商城登陆页面".center(40)) print("*" * 40) print("1.用户登录".center(40)) print("2.用户注册".center(40)) ...
  • Python实现学生管理系统(功能全面)

    万次阅读 多人点赞 2019-07-08 13:20:47
    标题Python实现学生管理系统 功能描述 1.分为两个界面:(1)登录注册界面 (2)学生管理系统界面 2.登录功能和之前发布的图书管理系统相同,登录成功后可进入学生管理系统界面,这里不再叙述 3.系统功能(1)...
  • 本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下功能:1、注册 2、登录 3、充钱 4、提现 5、下注 6、开奖 7、退出简述:彩民需要用身份证号码开户注册一个彩票号码,购买彩票时需要先登录...
  • print("\t\t 2、用户登录\n") print("\t\t 3、退出系统\n") print("~*" * 20) choice = input("请输入您要操作的选项:") return choice def exists_user(username): for i in users: if i.get("username") ...
  • 系统实现管理人员登录注册、密码修改以及各个职务人员查询、添加、修改、删除、统计(tkinter+mysql)
  • 对csdn的排版很无语,已经写了好多遍了显示上来还是很乱,最后还是决定直接粘贴过来 ...用户注册\n") print("\t\t\t3.退出系统\n") print("~*"*38) choice = input("请输入您的选择:") if choice == "1

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 316
精华内容 126
关键字:

python实现注册登录系统

python 订阅