zoukankan      html  css  js  c++  java
  • 动态页面的登陆——装饰器应用<代码>

    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

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

  • 相关阅读:
    mac安装完anaconda后,环境变量设置
    axios如何发送Basic Auth
    Django自带认证系统邮件模板自定义
    Ajax与Flask传值的跨域问题
    一道XXE漏洞和SSRF结合的题目
    如何分多次Pull requests
    如何使用C#写个多简单文档编辑器
    如何用Tkinter写个计算器
    LCTF2017学到的姿势
    Python 学习之路
  • 原文地址:https://www.cnblogs.com/khal-Cgg/p/5872358.html
Copyright © 2011-2022 走看看