当前位置:编程学习 > 网站相关 >>

CherryPy的Hello World分析

Hello World
        源码如下:
[python]
import cherrypy 
 
class HelloWorld: 
    def index(self): 
        return "Hello world!" 
    index.exposed = True 
 
cherrypy.quickstart(HelloWorld()) 
CherryPy框架  www.zzzyk.com
        当一个请求发生时,首先到达的是CPWSGIServer,CPWSGIServer基于socket,win32下对应的底层支持module是process/win32.py。由于CherryPy支持WSGI接口的应用,故CPWSGIServer也能支撑WSGI应用。

        CPWSGIServer会将每个请求封装成一个HTTPConnection,然后扔到队列Queue里面,由ThreadPool中的WorkerThread来处理,处理方式很简单,就是ThreadPool启动多个WorkerThread,每个WorkerThread去Queue中取HTTPConnection,然后处理之。CherryPy中,可以设置WorkerThread的个数。

ThreadPool模块和_cp开头的module的交互是通过_cpserver.Server,它只是一个Adapter,包装了底层的Server类。HTTPConnection会将消息转发到_cptree.Tree,该类中记载了站点的相对路径(比如“/”)和对应的Application之间的对应关系,那么它会跟据不同的URL请求转到对应的Application中。

        Application中则封装了用户定义的类HelloWorld对象,故在需要返回数据给客户端时,调用到HelloWorld中。

补充:Web开发 , Python ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,