• 动态页面的登陆——装饰器应用<代码>


    log_status = False
    f = open("info", "r", encoding="utf8")
    source = f.read()
    source = eval(source)
    username = ""
    def info_match(f_para_info):
        username = input("type your ID:")
        password = int(input("type your password:"))
        global source
        if username == source[f_para_info]["name"] and password == source[f_para_info]["password"]:
            print("login successful")
            global log_status
            log_status = True
        else:
            print("login failed")
    def para_decorator(f_para_pd):
        def decorator(f_para_dec):
            def func():
                if log_status == True:
                    global source
                    sf = source[f_para_pd]["name"]
                    print("welcome user {kk}".format(kk=sf))
                    f_para_dec()
                if log_status == False:
                    if f_para_pd == "jingdong":
                        info_match(f_para_pd)
                        f_para_dec()
                    elif f_para_pd == "weixin":
                        info_match(f_para_pd)
                        f_para_dec()
                    elif f_para_pd == "qq":
                        info_match(f_para_pd)
                        f_para_dec()
            return func
        return decorator
    @para_decorator("jingdong")  # homepage=para_decorator("jingdong")(homepage)
    def homepage():
        print("welcome to home...")
    @para_decorator("weixin")
    def finance_page():
        print("welcome to finance")
    @para_decorator("qq")
    def bookstore():
        print("enjoy to the sea of knowledge")
    print("welcome to jd.com".center(60,"*"))
    while True:
        print('''
        1.homepage (账号:ccc 密码:123)
        2.finance_page(账号:gaga 密码:456)
        3.bookstore(账号:xiaomu 密码:789)
        4.quit to jd
        '''
        )
        switch = int(input("switch to ..."))
        if switch == 1:
            homepage()
        elif switch == 2:
            finance_page()
        elif switch == 3:
            bookstore()
        elif switch == 4:
            break

    功能:不同的页面需要不同的账号来登陆;登陆后返回等操作后不需要二次登陆。

  • 相关阅读:
    技术债务墙:一种让技术债务可见并可协商的方法
    墙裂推荐
    shell 脚本通过Webhook 发送消息到微信群
    关于中医的一段对话 [ZZ] -- 思维训练故事
    应用深度神经网络预测学生期末成绩
    Python中的模块引用机制
    批量修改含空格的文件名「Linux」
    Markdown数学公式语法
    批处理修改IP
    FTD团队目录
  • 原文地址:https://www.cnblogs.com/khal-Cgg/p/5872358.html
Copyright © 2020-2023  润新知