CherryPy教程

CherryPy 工具箱

在 CherryPy 中,内置工具提供单一接口来调用 CherryPy 库。 CherryPy 中定义的工具可以通过以下方式实现-
从配置设置 作为 Python 装饰器或通过页面处理程序的特殊 _cp_config 属性 作为可在任何函数中应用的 Python 可调用项

基本认证工具

此工具的目的是为应用程序中设计的应用程序提供基本身份验证。

参数

此工具使用以下参数-
名称 默认 描述
realm 不适用 定义领域值的字符串。
users 不适用 形式的字典-username:password 或返回这样的字典的 Python 可调用函数。
encrypt Python callable 用于对客户端返回的密码进行加密,并与用户字典中提供的加密密码进行比较。

示例

让我们举个例子来了解它是如何工作的-
import sha
import cherrypy
class Root:
@cherrypy.expose
def index(self):
return """
<html>
   <head></head>
   <body>
      <a href = "admin">Admin </a>
   </body>
</html>
""" 
class Admin:
@cherrypy.expose
def index(self):
return "this is a private area"
if __name__ == '__main__':
def get_users():
# 'test': 'test'
return {'test': 'b110ba61c4c0873d3101e10871082fbbfd3'}
def encrypt_pwd(token):
return sha.new(token).hexdigest()
   conf = {'/admin': {'tools.basic_auth.on': true,
      tools.basic_auth.realm': 'Website name',
      'tools.basic_auth.users': get_users,
      'tools.basic_auth.encrypt': encrypt_pwd}}
   root = Root()
root.admin = Admin()
cherrypy.quickstart(root, '/', config=conf)
get_users 函数返回一个硬编码的字典,但也从数据库或其他任何地方获取值。类 admin 包含此功能,该功能使用 CherryPy 的身份验证内置工具。授权entification 对密码和用户 ID 进行加密。
基本的身份验证工具并不安全,因为密码可以被入侵者编码和解码。

缓存工具

此工具的目的是为 CherryPy 生成的内容提供内存缓存。

参数

此工具使用以下参数-
名称 默认 描述
invalid_methods ("POST", "PUT", "DELETE") 不缓存的 HTTP 方法字符串的元组。这些方法还将使(删除)资源的任何缓存副本无效。
cache_Class MemoryCache 用于缓存的类对象

解码工具

这个工具的目的是解码传入的请求参数。

参数

此工具使用以下参数-
名称 默认 描述
encoding 查找内容类型标题
Default_encoding "UTF-8" 当没有提供或找到时使用的默认编码。

示例

让我们举个例子来了解它是如何工作的-
import cherrypy
from cherrypy import tools
class Root:
@cherrypy.expose
def index(self):
return """ 
<html>
   <head></head>
   <body>
      <form action = "hello.html" method = "post">
         <input type = "text" name = "name" value = "" />
         <input type = ”submit” name = "submit"/>
      </form>
   </body>
</html>
"""
@cherrypy.expose
@tools.decode(encoding='ISO-88510-1')
def hello(self, name):
return "Hello %s" % (name, )
if __name__ == '__main__':
cherrypy.quickstart(Root(), '/')
上面的代码从用户那里获取一个字符串,它将用户重定向到"hello.html"页面,在那里它将显示为具有给定名称的"Hello"。
以上代码的输出如下-
解码工具
hello.html
解码工具输出
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4