Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29956540
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Python/Ruby

2010-04-20 21:19:40

cherrypy模块笔记

示例:

import cherrypy

class HelloWorld(object):

    def index(self):

        return "Hello World!"

    index.exposed = True

cherrypy.quickstart(HelloWorld())

定义了 expose 方法,用来设定方法是否是以被调用!

CherryPy 可以把对象的方法发布出去,因此我们一般会写许多的类。每个可以被调用的方法必须设置方法的exposed属性为True。在2.4中还可以使用cpg 块中定义好的expose作为decorator方法来使用,如:

class HelloWorld:
    @expose
    def index(self):
        return “Hello world!”      
表示这个方法是可以发布的!

类写好后第一步就是绑定这个类的实例到 cpg.root 属性上来。

 

以下的代码说明:

from cherrypy import cpg

class HelloWorld:
    def index(self):
        return “Hello world!”

index.exposed = True

#类定义好了之后就将类的实例绑定以cgp.root属性上来!

cpg.root = HelloWorld()

#然后执行cpg.server.start() 其实这句的含义真正是执行了_cpserver中的start方法!

cpg.server.start(configFile = ‘tutorial.conf’)

这样cherryPy就启动了!

先简单了解一下我总结的CherryPy目录下的各主要文件的功能描述吧。

 文件名

 功能说明

 cpg.py

主模块,用于绑定属性。定义了expose方法。 

 _cpconfig.py

配置信息处理:

提供缺省配置信息setDefaultConfigOption
从配置文件提取配置信息parseConfigFile
输出配置信 outputConfigOptions
检查系统配置dummy() 

 _cpdefaults.py

提供缺省处理方法:

提供_cpLogMessage,用于记录日志
提供_cpOnError,用于错误输出
提供 _cpSaveSessionData,用于保存session数据
提供_cpLoadSessionData,用于取出session数据
_cpCleanUpOldSessions,清除session
提供_cpFilterList,过滤器列表

 _cputil.py

提供感知线程类(用于多线程处理时对responserequest的处理)
提供getSpecialFunction()方法,用于 根据方法的名字,在程序空间搜索方法,相当于Hack缺省方法的机制。

 _cpserver.py

提供服务器的启动(start)和停止方法(stop) 

 _cphttpserver.py

提供真正的server服务,上面的_cpserver.py真正是调用这个模块的启动方法和停止方法。提供了两种 server:CherryHTTPServerPooledThreadServer,根据配置信息而进行选择。 

 _cphttptools.py

提供对http的具体处理,如:响应请求处理,处理过滤器,进行URL与对象映射的转换,返回响应,处理session

lib/filter/basefilter.py

提供基础的BaseInputFilterBaseOutputFilter类,用于其它过滤器进行派生,起到一个接口的作用。

 

知道一点它就是一个轻量级的HTTP框架!

这家伙还可以配置成Django自带的HTTP服务器。

 

阅读(681) | 评论(0) | 转发(0) |
0

上一篇:Py2exe学习笔记

下一篇:SQLObject模块笔记

给主人留下些什么吧!~~