zoukankan      html  css  js  c++  java
  • 装饰器2_根据认证来源判断用户和计算登录时间

    import time
    
    def timmer(func):
        def wrapper(*args,**kwargs):
            print("----->from timmer_wrapper")
            start_time = time.time()
            reg = func(*args,**kwargs)
            stop_time = time.time()
            run_time = stop_time - start_time
            print('run time is %s' % run_time)
            return reg
        return  wrapper
    
    login_user={'user':None,'status':False}
    def auth(driver = 'file'):
        def auth2(func):
            def wrapper(*args,**kwargs):
                print("---->from auth_wrapper")
                if driver == 'file':
                    if login_user['user'] and login_user['status']:
                        reg = func(*args,**kwargs)
                        return reg
                    else:
                        name = input("输入姓名:")
                        password = input("输入密码")
                        if name == 'wangkc' and password == '123123':
                            login_user['user'] = name
                            login_user['status'] = True
                            reg = func(*args,**kwargs)
                            return reg
                        else:
                            print("账号或密码错误")
                elif driver == 'ldap':
                    pass
                elif driver == 'MySQL':
                    pass
                else:
                    print("==========>未知的认证来源")
            return wrapper
        return auth2
    
    @auth()
    @timmer
    def index():
        time.sleep(2)
        print('hello world')
    
    
    index()
    

      

  • 相关阅读:
    【转】进程与线程的一个简单解释
    折半查找
    BOJ 89 统计时间间隔
    BOJ 88 最值问题
    BOJ 87 日期
    QT杂记(网上资料整理而成)
    我的博客园
    【制作镜像】virsh
    【培训】MySQL
    ERROR 1045 (28000): Access denied for user 'root'@'localhost'
  • 原文地址:https://www.cnblogs.com/wangkc/p/6916481.html
Copyright © 2011-2022 走看看