您当前的位置:首页 > 计算机 > 编程开发 > Python

pyhon用户登录验证

时间:05-20来源:作者:点击数:

登录接口

user = {'user': None}
def login_execute():
    while True:
        print("欢迎使用登录功能".center(50, '*'))
        username = input('请输入用户名(Q/q退出):').strip()
        if username.upper() == 'Q':
            break
        password = input('请输入密码(Q/q退出):').strip()
        if password.upper() == 'Q':
            break

        res = login.login(username, password)
        if res == '登录成功':
            user['user'] = username
            print(f'用户{username}登录成功!')
            break
        else:
            print('用户名或密码错误,请重新输入')

登录装饰器


# 用户登录认证装饰器
def auth():
    '''
    :return:
    '''
    from src import login
    # 登录认证装饰器
    def login_auth(func):
        def inner(*args, **kwargs):
                if login.user['user']:
                    res = func(*args, **kwargs)
                    return res
                else:
                    print('请登录后才可以操作')
                    login.execute()

        return inner

    return login_auth

使用方法

from common import auth
@auth.auth()
def execute():
    while True:
        print("欢迎使用发布博客功能".center(50,'*'))
        username = input('请输入文章标题(Q/q退出):').strip()
        if username.upper() == 'Q':
            break
        password = input('请输入文章内容(Q/q退出):').strip()
        if password.upper() == 'Q':
            break

多用户登录装饰器


# 多用户登录认证装饰器
def auth(role):
    '''
    :param role: 角色 ---》 管理员、学生、老师
    :return:
    '''
    from core import admin, student, teacher
    # 登录认证装饰器
    def login_auth(func):
        def inner(*args, **kwargs):
            if role == 'admin':
                if admin.admin_info['user']:
                    res = func(*args, **kwargs)
                    return res
                else:
                    admin.login()

            elif role == 'student':
                if student.student_info['user']:
                    res = func(*args, **kwargs)
                    return res
                else:
                    student.login()

            elif role == 'teacher':
                if teacher.teacher_info['user']:
                    res = func(*args, **kwargs)
                    return res
                else:
                    teacher.login()

            else:
                print('当前视图没有权限')

        return inner

    return login_auth

使用方法

# 学生选择学校
@common.auth('student')
def choice_school():
    while True:
        # 1、获取所有学校,让学生选择
        flag, school_list = common_interface.get_all_school_interface()
        if not flag:
            print(school_list)
            break

        for index, school_name in enumerate(school_list):
            print(f'编号: {index}   学校名: {school_name}')

        # 2、让学生输入学校编号
        choice = input('请输入选择的学校编号: ').strip()
        if not choice.isdigit():
            print('输入有误')
            continue

        choice = int(choice)

        if choice not in range(len(school_list)):
            print('输入编号有误!')
            continue

        school_name = school_list[choice]

        # 3、开始调用学生选择学校接口
        flag, msg = student_interface.add_school_interface(
            school_name, student_info.get('user'))

        if flag:
            print(msg)
            break

        else:
            print(msg)
            break
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门