当前位置:首页 > CN2资讯 > 正文内容

python 代理

11小时前CN2资讯

代理装饰器使用全局机制来标记和注册函数。举个例子,一个根据当前用户来保护代

码访问的安全层可以使用集中式检查器和相关的可调用对象要求的权限来实现:

class User(object):

def __init__(self, roles):

              self.roles = roles

      class Unauthorized(Exception):

          pass

def protect(role):

def _protect(function):

def __protect(*args, **kw):

user = globals().get('user')

if user is None or role not in user.roles:

                      raise Unauthorized("I won't tell you")

                  return function(*args, **kw)

return __protect return _protect

这一模型常用于 Python Web 框架中,用于定义可发布类的安全性。例如,Django 提供 装饰器来保护函数访问的安全。

下面是一个示例,当前用户被保存在一个全局变量中。在方法被访问时装饰器会检查 他/她的角色:

   >>> tarek = User(('admin', 'user'))

   >>> bill = User(('user',))

   >>> class MySecrets(object):

   ...     @protect('admin')

...

2.2 高级语法 53

   def waffle_recipe(self): print('use tons of butter!')

...

...

>>>

>>> user = tarek

these_are = MySecrets()

54 第2章 语法最佳实践—类级别以下

>>> these_are.waffle_recipe()

use tons of butter!

>>> user = bill

>>> these_are.waffle_recipe() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 7, in wrap __main__.Unauthorized: I won't tell you

(4)上下文提供者 上下文装饰器确保函数可以运行在正确的上下文中,或者在函数前后运行一些代码。换

句话说,它设定并复位一个特定的执行环境。举个例子,当一个数据项需要在多个线程之间 共享时,就要用一个锁来保护它避免多次访问。这个锁可以在装饰器中编写,代码如下:

      from threading import RLock

      lock = RLock()

def synchronized(function):

def _synchronized(*args, **kw):

              lock.acquire()

              try:

                  return function(*args, **kw)

              finally:

lock.release() return _synchronized

@synchronized

def thread_safe(): # 确保锁定资源

pass

上下文装饰器通常会被上下文管理器(with 语句)替代

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24146.html

    分享给朋友:

    “python 代理” 的相关文章

    远程VPS优选指南:高效管理虚拟专用服务器的最佳实践

    随着远程工作的普及和数字化转型的加速,远程VPS(虚拟专用服务器)逐渐成为许多企业和个人的首选工具。VPS通过虚拟化技术,让我们能够在一台物理服务器上同时运行多个独立的操作系统,这种灵活性使得用户能够像管理独立服务器那样,远程登录和管理自己的虚拟环境。每天都有更多的人意识到,拥有一个VPS可以为他们...

    Host Winds:可再生能源的关键因素与未来发展潜力

    什么是 Host Winds? 在谈论可再生能源时,Host Winds 是一个不容忽视的概念。简单来说,Host Winds 指的就是那些发生在某一特定区域内的风速和风向。这些风的模式能够极大地影响一个地区的风力发电潜力。想象一下,如果你在一个风速稳定且方向一致的地区,那么利用这些风来发电就会更加...

    全面解析UDP攻击:类型、影响及有效防御策略

    在当今网络环境中,UDP攻击是一个话题无法忽视的安全隐患。它是一种常见的网络攻击形式,通常会给目标服务器带来严重的资源消耗。为了更好地理解这一现象,我们不妨简单回顾一下UDP协议的特性,以及攻击者是如何利用这一协议实施攻击的。 UDP,即用户数据报协议(User Datagram Protocol)...

    如何有效使用WP Rocket插件提升WordPress网站性能

    WP Rocket是一个强大的高级WordPress缓存插件,它的使用对于提升网站的速度和性能起着至关重要的作用。如今,网站的加载速度对于用户体验和SEO排名都有着重要的影响。WP Rocket通过一系列功能和设置,帮助用户轻松优化自己的网站,进而增加访问量和客户满意度。 在使用WP Rocket插...

    Ubuntu 多人远程办公的安装与配置指南

    安装和配置远程桌面软件 在远程办公和团队协作日益成为常态的今天,合理配置远程桌面软件显得尤为重要。在Ubuntu的环境下,安装和配置xrdp和vncviewer等工具,可以让多个用户方便地进行远程访问,提高工作效率。下面,我将一步步带你进行相关的软件安装和配置。 1. 安装xrdp 首先,我们要安装...

    AS4837和AS9929线路在国际通信中的优势与应用分析

    在了解AS4837线路的历史背景时,回顾其起源与发展非常重要。AS4837线路,通常被称为中国联通的骨干网线路,最早始建于20世纪90年代。那时,随着互联网的兴起,全球对网络基础设施的需求不断增加,中国决定建立更强大的国际连接,通过AS4837将中国大陆与香港、美国、日本、韩国等多地紧密相连。这个决...