Python使用装饰器模拟用户登陆验证功能示例

 更新时间:2018年08月24日 08:41:04   作者:我是马克思小清新  
这篇文章主要介绍了Python使用装饰器模拟用户登陆验证功能,结合登录验证实例形式分析了装饰器的简单使用技巧,需要的朋友可以参考下

本文实例讲述了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数据结构与算法教程》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • 使用Python快速打开一个百万行级别的超大Excel文件的方法

    使用Python快速打开一个百万行级别的超大Excel文件的方法

    这篇文章主要介绍了使用Python快速打开一个百万行级别的超大Excel文件的方法,本文通过实例代码给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python安装本地.whl文件的流程及注意事项

    Python安装本地.whl文件的流程及注意事项

    在Python的生态环境中.whl文件是一种预编译的二进制包,用于分发和安装Python库,这篇文章主要给大家介绍了关于Python安装本地.whl文件的流程及注意事项,文中讲解了下载文件、安装pip、使用pip安装whl文件、验证安装以及注意事项,需要的朋友可以参考下
    2024-11-11
  • Python3爬虫发送请求的知识点实例

    Python3爬虫发送请求的知识点实例

    在本篇文章里小编给大家分享的是一篇关于Python3爬虫发送请求的知识点实例,需要的朋友们可以学习下。
    2020-07-07
  • Python中for循环控制语句用法实例

    Python中for循环控制语句用法实例

    这篇文章主要介绍了Python中for循环控制语句用法,较为详细的分析了for循环语句的原理与相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • python 实现提取log文件中的关键句子,并进行统计分析

    python 实现提取log文件中的关键句子,并进行统计分析

    今天小编就为大家分享一篇python 实现提取log文件中的关键句子,并进行统计分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python Dash框架在数据可视化仪表板中的应用与实践记录

    Python Dash框架在数据可视化仪表板中的应用与实践记录

    Python的Plotly Dash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一个互动数据仪表板,并通过代码示例帮助读者理解如何实现这一过程,感兴趣的朋友一起看看吧
    2025-03-03
  • Python Faker库基本用法详解

    Python Faker库基本用法详解

    Faker 是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍Python Faker库基本用法详解,感兴趣的朋友一起看看吧
    2025-04-04
  • Flask框架实现给视图函数增加装饰器操作示例

    Flask框架实现给视图函数增加装饰器操作示例

    这篇文章主要介绍了Flask框架实现给视图函数增加装饰器操作,结合实例形式分析了flask框架视图添加装饰器的具体操作方法及相关注意事项,需要的朋友可以参考下
    2018-07-07
  • 跟老齐学Python之开始真正编程

    跟老齐学Python之开始真正编程

    通过对四则运算的学习,已经初步接触了Python中内容,但是到目前为止,还不能算编程,只能算会用一些指令(或者叫做命令)来做点简单的工作。列位稍安勿躁,下面我们就学习如何编写一个真正的程序。
    2014-09-09
  • 在Heroku云平台上部署Python的Django框架的教程

    在Heroku云平台上部署Python的Django框架的教程

    这篇文章主要介绍了在Heroku云平台上部署Python的Django框架的教程,Heroku云平台使用了Git版本控制系统,所以本教程主要提供了配置所需要的Git脚本,需要的朋友可以参考下
    2015-04-04

最新评论