开发手册 欢迎您!
软件开发者资料库

CherryPy - 工具箱

CherryPy ToolBox - 从简介,环境设置,词汇,内置Http服务器和内部引擎,工具箱,工作应用程序,Web服务,表示层,Ajax的使用,演示应用程序,测试,部署,从简单而简单的步骤学习CherryPy应用。

在CherryPy中,内置工具提供了一个单独的界面来调用CherryPy库. CherryPy中定义的工具可以通过以下方式实现 :

  • 从配置设置中

  • 作为Python装饰器或通过页面处理程序的特殊_cp_config属性

  • 作为可在任何函数中应用的Python可调用

基本身份验证工具

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

参数

此工具使用以下参数 :

名称默认描述
realmN/A定义领域值的字符串.
usersN/A形式字典 :  username:password或返回这样字典的Python可调用函数.
encrypt用于加密密码的Python callable客户端返回并将其与用户词典中提供的加密密码进行比较.

示例

让我们举一个例子来了解它的工作原理和减号;

import shaimport cherrypyclass Root:@cherrypy.exposedef index(self):return """            Admin    """ class Admin:@cherrypy.exposedef 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的身份验证内置工具.身份验证加密密码和用户ID.

基本身份验证工具并不十分安全,因为密码可以被入侵者编码和解码.

缓存工具

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

参数

此工具使用以下参数 :

名称默认描述
invalid_methods("POST","PUT","DELETE")不缓存HTTP方法字符串的元组.这些方法也将使资源的任何缓存副本无效(删除).
cache_ClassMemoryCache用于缓存的类对象

解码工具

此工具的目的是解码传入的请求参数.

参数

此工具使用以下参数 :

名称默认描述
encoding它查找内容类型标题
Default_encoding"UTF-8"没有时使用的默认编码提供或找到.

示例

让我们举一个例子来理解如何工作 : 去;

import cherrypyfrom cherrypy import toolsclass Root:@cherrypy.exposedef index(self):return """                                        """@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


解码工具输出