user_list=[{'name':'tom','passwd':'123'},{'name':'ubuntu','passwd':'123'},{'name':'centos','passwd':'123'},{'name':'jane','passwd':'123'},
]
current_dict = {'username':None,'login':False}
def auth(auth_type = 'filedb'): #验证方式默认为filedbdef auth_func(func):def wrapper(*args,**kwargs):print("认证方式是:{}".format(auth_type))if auth_type == 'filedb':if current_dict['username'] and current_dict['login']:res = func()return  resusername = input("username:>>>").strip()passwd = input("passwd:>>>").strip()for user_dict in user_list:if username == user_dict['name'] and passwd == user_dict['passwd']:current_dict['username'] = usernamecurrent_dict['login'] =Trueres = func()return reselse:print("用户名或密码错误")else:print("鬼知道认证方式是个啥--->{}".format(auth_type))return wrapperreturn auth_func@auth(auth_type = 'filedb')
def index():print("欢迎来到京东主页")
@auth()
def home():print("欢迎回家!")@auth('sssssss')
def shopping_car():print("购物车中有........")if __name__ == '__main__':index()home()shopping_car()

转载于:https://www.cnblogs.com/zach0812/p/11333335.html

用装饰器来进行登录验证相关推荐

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

    本文实例讲述了Python使用装饰器模拟用户登陆验证功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #!python3 user_list = [ {'name' ...

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

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

  3. 抽屉之Tornado实战(9)--装饰器实现用户登录状态验证

    当然今天讲的验证,不只Tornado会用,以后用到web框架都会用到,最常见的场景就是只有用户登陆了才能执行某些操作,所以在执行这些操作前要先做登陆状态的验证. 比如:点赞,发布,评论等需要验证,都需 ...

  4. python装饰器模式带参数_Python装饰器使用实例:验证参数合法性 请教Python 使用装饰器实现单例模式的原理...

    python中一层装饰器的函数可以带参数吗 可以的, 装饰器分为可带参数和不可带参数的两种:但是如果带参数,则带参数装饰器的"参数"及"return"必须也是一 ...

  5. Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)

    本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 核心代码 首先是index.jsp,显示链接 String path = request.getContextPath(); String ...

  6. 基于SSH2框架Struts2拦截器的登录验证实现 来自菠萝大象

    本文为菠萝大象原创,如要转载请注明出处. 通过之前的 Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解系列文章,我们已经成功将这三种框架整合到了一起, 这次大 ...

  7. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  8. django CBV装饰器 自定义django中间件 csrf跨站请求伪造 auth认证模块

    CBV加装饰器 第一种 @method_decorator(装饰器) 加在get上 第二种 @method_decorator(login_auth,name='get') 加在类上 第三种 @met ...

  9. Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景 附加功能 数据的清理或添加: 函数参数类型验证 @require_ints 类似请求前拦截 数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改 为函数提供额外的数据 ...

最新文章

  1. zendframwork入口关键Zend_Application.php类
  2. PHP中switch条件语句的使用,php条件语句(2)switch...case语句
  3. ETSI MEC — 与 NFV 的融合
  4. 从简单到高并发服务器(一)
  5. 双系统XP和ubuntu,升级ubuntu出现no such device grub rescue
  6. C++ Primer 5th笔记(chap 19 特殊工具与技术)运行时类型识別RTTI
  7. 必然之势:从结构、时间、媒介的角度看信息的发展趋势
  8. [BUUCTF-pwn]——not_the_same_3dsctf_2016
  9. for循环和数组练习
  10. jdeveloper_适用于JDeveloper 11gR2的Glassfish插件
  11. Linux命令-自动挂载文件/etc/fstab功能详解
  12. Android入门(15)| 网络
  13. 使用 jQuery Mobile 与 HTML5 开发 Web App (八) —— jQuery Mobile 工具栏
  14. 重新上手c语言的一些坑
  15. 使用Outlook对邮件进行分类
  16. c语言编写单片机中断,C语言AVR单片机中断程序写法
  17. C#-实现微信激活会员卡后响应激活动作并获取会员信息
  18. 几张思维导图告诉你搜索引擎优化(SEO)核心点
  19. 阿里云 root ssh远程登录 及 普通非root用户 ssh远程登录 Ubuntu1604
  20. 我的世界java版的名字是独一无二吗_2018独一无二霸气网名,二字网名超拽霸气冷酷...

热门文章

  1. python 生成文字图片_[ImageFont] 如何利用字体生成文字图片
  2. mongo 多条件筛选_Excel筛选功能,你确定这些小技巧你都玩明白了
  3. 大众mpv_最便宜的大众MPV来啦!1.4T6AT,空间比宝骏730还宽裕
  4. c语言系统关键词有哪些,C语言的那些关键字
  5. 因果推断笔记——因果图建模之微软开源的EconML(五)
  6. 自动血压呼吸检测仪技术方案
  7. 2016OSC源创会年终盛典-前端技术专场-阴明
  8. Android---真机调试时不能识别手机的解决方案
  9. tomcat项目支持跨域访问
  10. 存储过程系列之存储过程sql数据库调用和程序代码调用