装饰器:用户登录

这篇博客介绍了用户认证系统的设计,通过`login`装饰器实现登录验证。当用户未登录时,系统会提示输入用户名和密码,登录成功后用户信息会被标记为已认证。用户可以访问`home`、`america`和`henan`等区域,其中`henan`区域的访问可能需要特定权限。示例展示了如何在不同函数调用中嵌入认证逻辑。
摘要由CSDN通过智能技术生成
account = {
    "is_authenticated":False,# 用户登录了就把这个改成True
    "username":"alex", # 假装这是DB里存的用户信息
    "password":"abc123" # 假装这是DB里存的用户信息
}
def login(func):
    def inner(*args,**kwargs):
        if account["is_authenticated"] is False:
            username = input("user:")
            password = input("pasword:")
            if username == account["username"] and password == account["password"]:
                print("welcome login....")
                account["is_authenticated"] = True
                func(*args,**kwargs)
            else:
                print("wrong username or password!")
        else:
            print("用户已登录,验证通过...")
            func(*args,**kwargs)
    return inner

def home():
    print("---首页----")
@login
def america():
    # login()  # 执行前加上验证
    print("----欧美专区----")
def japan():
    print("----日韩专区----")
@login
def henan(level):
    # login()  # 执行前加上验证
    if level > 3:
        print("vip专区")
    else:
        print("----河南专区----")

home()
america()
henan(4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值