栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 装饰器的应用---登录认证

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 装饰器的应用---登录认证

"""
需求:登录CSDN社区成功后,才可以访问"博客"、"课程"、"问答"等页面
已有账户文件 csdn 及账户密码:
albert|123456
don|456
jack|789
"""

# 记录用户登录状态的字典
user_status = {'usname': None,
               'status': False}


def get_userpwd():
    user_dict = {}
    with open('csdn', encoding='utf-8', mode='r') as f:
        for line in f:
            user, pwd = line.strip().split('|')
            user_dict[user] = pwd
    return user_dict


def csdn_login():
    userpwd_dict = get_userpwd()
    count = 1
    while count < 4:
        username = input('请输入您的用户名:').strip()
        password = input('请输入您的密码: ').strip()
        if username in userpwd_dict and userpwd_dict[username] == password:
            print(f'登录成功,欢迎您{username}')
            user_status['usname'] = username
            user_status['status'] = True
            return True
        else:
            print(f'对不起,您输入的用户名或者密码错误,剩余机会{3-count}次!')
        count += 1
    return False

# 装饰器,只有登录成功后,才可以进行访问
def csdn_decorator(func):
    def inner(*args, **kwargs):
        if user_status['status']:
            ret = func(*args, **kwargs)
            return ret
        else:
            if csdn_login():
                ret = func(*args, **kwargs)
                return ret
    return inner


@csdn_decorator
def csdn_blog():
    print('欢迎访问“博客”首页!!!')


@csdn_decorator
def csdn_course():
    print('欢迎访问“课程”首页!!!')


@csdn_decorator
def csdn_quest_ans():
    print('欢迎访问“问答”首页!!!')

# 登录成功后,才可以访问博客首页
csdn_blog()

# 登录成功后,才可以访问课程首页
csdn_course()

# 登录成功后,才可以访问课程首页
csdn_quest_ans()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/740683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号