当前位置: 移动技术网 > IT编程>脚本编程>Python > python 装饰器模拟京东登陆

python 装饰器模拟京东登陆

2019年02月25日  | 移动技术网IT编程  | 我要评论

rct402奇迹の确率,金钗谍影电视剧全集,中国民航信息网

要求:

1、三个页面:主页面(home)、书店(book)、金融页面(finance)
2、有两种登陆方式:主页面和书店页面使用京东账户登陆,金融页面使用微信账户登录
2、输入:1 ,进入主页面,以此类推;输入:2 ,进入书店页面;输入:3 ,进入金融页面
3、进入页面时检测有没有登陆,如果没有调用登陆接口,使用账号密码登陆,在任何界面,只需登陆一次即可
4、账户信息保存在文件里
5、在任意界面,输入:q   ,退出程序

源代码:

login_status = false  # 登录状态

with open('账户信息', 'r') as f_read_self:
    jingdong = f_read_self.readline().strip()
    jingdong = eval(jingdong)   # 内置函数eval()的作用是把一个字符串转换为字典
    for n, m in jingdong.items():
        jd_name = n
        jd_pwd = m

with open('账户信息(微信)', 'r') as f_read_wechat:
    wechat = f_read_wechat.readline().strip()
    wechat = eval(wechat)
    for n, m in wechat.items():
        wechat_name = n
        wechat_pwd = m


def login(auth_type="jingdong"):   # 判断页面类型,默认进去是京东登录页面

    def page(dis_play):
        global login_status    # 声明全局变量

        def login_type():
            global login_status     # 声明全局变量
            if not login_status:    # 如果是未登陆状态
                if auth_type == "jingdong":
                    username = input("username:")
                    passwd = input("passwd:")
                    if jd_name == username and jd_pwd == passwd:
                        print("welcome ....")
                        dis_play()   # 登陆成功执行页面函数,显示内容
                        login_status = true  # 改登陆状态为 true
                    else:
                        print("账户或密码错误,请重新输入")
                elif auth_type == "wechat":
                    username = input("username:")
                    passwd = input("passwd:")
                    if wechat_name == username and wechat_pwd == passwd:
                        print("welcome ....")
                        dis_play()  # 登陆成功执行页面函数,显示内容
                        login_status = true  # 改登陆状态为 true
                    else:
                        print("账户或密码错误")
            else:
                print("已登陆")
        return login_type   # 返回login_type 的内存地址,用于指向函数对象
    return page


@login()
def home():   # 主页面
    print("welcome to home page")


@login()
def book():  # 书店
    print("welcome to home page")


@login(auth_type="wechat")
def finance():  # 金融
    print("welcome to home page")


while true:
    user_input = input('请输入:\n1: [主页] \n2: [书店] \n3: [金融] \nq:退出')
    if user_input == '1':
        home()
    elif user_input == '2':
        book()
    elif user_input == '3':
        finance()
    elif user_input == 'q':
        break
注:文件里的账户信息格式如下,以字典的形式保存

账户信息: {'tom':'qwe123',}

账户信息(微信): {'toms':'qwe123',}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网