本文实例讲述了Python使用装饰器模拟用户登陆验证功能。分享给大家供大家参考,具体如下:

# -*- coding:utf-8 -*-

#!python3

user_list = [

{'name':'ad1','passwd':'123'},

{'name':'ad2','passwd':'123'},

{'name':'ad3','passwd':'123'},

{'name':'ad4','passwd':'123'}

]

#初始状态,用来保存登陆的用户,

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

#添加新功能

def auth_func(func):

def wrapper(*args,**kwargs):

#参数检查,判断是否有用户登录,如果有,不用验证,直接执行函数的功能

if client_dic['username'] and client_dic['login']:

res = func(*args,**kwargs)

return res

#输入用户名和密码

username = input('用户名:').strip()

passwd = input('passwd:').strip()

#对比列表,检查用户名和密码是否正确

for user_dic in user_list:

if username == user_dic['name'] and passwd == user_dic['passwd']:

client_dic['username'] = user_dic['name']

client_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 shoppping_car():

print('购物车里有[%s,%s,%s]'%('奶茶','妹妹','娃娃'))

print(client_dic)

index()

print(client_dic)

home('root')

运行结果:

希望本文所述对大家Python程序设计有所帮助。

python用户登录(输入用户名和密码)dic_Python使用装饰器模拟用户登陆验证功能示例...相关推荐

  1. php的toast,使用toast组件实现提示用户忘记输入用户名或密码功能

    微信小程序现在越来越流行,所需要的开发功能越来越多,本文主要介绍了微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能,结合实例形式详细分析了toast组件实现消息提示功能的相关操作技巧 ...

  2. win10创建新的计算机用户名和密码忘了,Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?...

    大家可能也会遇到这个问题,发现打开用户账户窗口的时候,原先"用户账户"配置界面中的"""要使用本计算机,用户必须输入用户名和密码"选项不见了 ...

  3. 没有要使用本计算机 用户必须输入密码,要使用本计算机,用户必须输入用户名和密码选项不见了怎么办...

    要使用本计算机,用户必须输入用户名和密码选项不见了怎么办?当我们在取消win10电脑的开机密码时,发现"要使用本计算机,用户必须输入用户名和密码"选项不见了,该怎么办呢,下面就和小 ...

  4. win10没有要使用本计算机用户必须,Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?...

    大家可能也会遇到这个问题,发现打开用户账户窗口的时候,原先"用户账户"配置界面中的"""要使用本计算机,用户必须输入用户名和密码"选项不见了 ...

  5. 请输入计算机用户名,要使用本计算机,用户必须输入用户名和密码选项不见了怎么办...

    要使用本计算机,用户必须输入用户名和密码选项不见了怎么办?当我们在取消win10电脑的开机密码时,发现"要使用本计算机,用户必须输入用户名和密码"选项不见了,该怎么办呢,下面就和小 ...

  6. python 装饰器实现事件绑定_Python装饰器实现几类验证功能做法实例

    最近新需求来了,要给系统增加几个资源权限.尽量减少代码的改动和程序的复杂程度.所以还是使用装饰器比较科学 之前用了一些登录验证的现成装饰器模块.然后仿写一些用户管理部分的权限装饰器. 比如下面这种 调 ...

  7. Python装饰器模拟京东登陆

    #_author:"zhengly" #date:2018/6/6 '''装饰器应用之登录''' '''装饰器''' #账号密码 username,password='zheng' ...

  8. vue 用户登录 记住用户名和密码

    第一种思路就是本地存储localStorage 存储 localStorage.setItem("rem_userName", c_name); localStorage.setI ...

  9. python 装饰器模拟京东登陆

    要求: 源代码: login_status = False # 登录状态 with open('账户信息', 'r') as f_read_self:jingdong = f_read_self.re ...

最新文章

  1. Python3中装饰器介绍
  2. 推荐系统发展的六大影响因子 | 深度
  3. 【CVPR2020】目标检测方向论文更新
  4. java生成pdf看不到至值_java生成pdf报错找不到DPF标题签名
  5. 工信部通告:任何组织和机构不得继续实施“计算机信息系统集成企业资质认定”...
  6. SpringBoot项目中,如何更规范的使用PageHelper分页?
  7. QT的QClipboard类的使用
  8. Python 资料性网站。
  9. 学习java之利用泛型访问自己定义的类
  10. sql升序,降序的问题
  11. python骗局-1.python真的是万恶之源么?(初识python)
  12. SVM原理,及和逻辑回归区别
  13. 360极速浏览器调用selenium
  14. C# 实现定时/循环任务
  15. 从Maya中把模型搬运至网页的过程
  16. 中国新出海故事:人、疫情与纽带
  17. java校招笔试题目_Java校招笔试题
  18. 【博主推荐】html好看的邀请函(附源码)
  19. 关于Jupyter Notebook的环境配置
  20. 模块说和神经网络学说_2020山东教师招聘考试:带你领略脑机能学说

热门文章

  1. 图像处理之基础---图像高效不失真缩放既卷积应用
  2. javascript本地,宿主,内置对象
  3. 发布过程5分钟内load飙升问题排查
  4. jqGrid获取一行数据的方法
  5. 递归、os.walk、内置函数、lambda、hashlib模块、md5加密、python安装第三方模块、操作mysql数据库...
  6. Leetcode475.Heaters供暖器
  7. 新建jsp报错“The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path”...
  8. Eclipse插件安装出现Duplicate location错误
  9. Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)
  10. Visual Assist X Options 注释设置-类