博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个简单的登录

Posted on 2019-05-20 10:18  MJ-majun  阅读(107)  评论(0编辑  收藏  举报
user_dic={'username':None,'login':False}

def auth_func(func):
    def wrapper(*args,**kwargs):
        if user_dic['username'] and user_dic['login']:    #判断用户是否有登录(有用户名且已经登录的情况下直接跳过验证)
            res=func(*args,**kwargs)
            return res
        username=input('请输入你的用户名:').strip()
        password=input('请输入你的密码:').strip()
        if username=='xiaoma' and password=='123456':
            user_dic['username']=username
            user_dic['login']=True
            res=func(*args,**kwargs)
            return res

        else:
            print('用户名或密码错误,请重新输入!')

    return wrapper

@auth_func
def index():
    print('欢迎来到淘宝首页,祝你购物愉快!')

@auth_func
def home(name):
    print('欢迎来到个人中心!')

@auth_func
def shopping_car(name):
    print('%s的购物车里有[%s,%s,%s]' %(name,'日用品','化妆品','厨卫'))


index()
home('小马')
shopping_car('小马')

 

user_list=[
    {'name':'小张','password':'123'},
    {'name':'小黄','password':'123'},
    {'name':'小李','password':'123'},
    {'name':'小周','password':'123'},
]

current_dic={'username':None,'login':False}

def auth_func(func):
    def wrapper(*args,**kwargs):
        if current_dic['username'] and current_dic['login']:    #判断用户是否有登录(有用户名且已经登录的情况下直接跳过验证)
            res=func(*args,**kwargs)
            return res
        username=input('请输入你的用户名:').strip()
        password=input('请输入你的密码:').strip()
        for user_dic in user_list:
            if username==user_dic['name'] and password==user_dic['password']:
                current_dic['name']=username
                current_dic['login']=True
                res=func(*args,**kwargs)
                return res
        else:
            print('用户名或密码错误!')

    return wrapper

@auth_func
def index():
    print('欢迎来到华夏家博会首页,祝你购物愉快!')
    
@auth_func
def home(name):
    print('欢迎来到个人中心%s!' %name)
    
@auth_func
def shopping_car(name):
    print('%s的购物车里有[%s,%s,%s]' %(name,'日用品','化妆品','厨卫'))

print('before-->',current_dic)
index()
print('after--->',current_dic)
home('小张')
shopping_car('小张')