标点符(钱魏 Way)

CherryPy安装调试记录

CherryPy是一个非常简单的框架,特别适合开发一些Web小工具,由于先前都没有接触过,所以学习下最简单的配置。

一、安装CherryPy

这个非常的简单,这里也不多说。我直接使用的 pip install CherryPy 进行的安装。

二、新建CherryPy程序

按照惯例,第一个程序应该是“Hello World”,在E盘 CherryPy 文件夹中新建一个 hello_world.py 的文件。文件内容如下:

三、运行第一个CherryPy程序

使用CMD工具,在E盘 CherryPy 文件夹下执行:E:\CherryPy>python hello_world.py

执行结果为:

[25/Sep/2012:12:11:27] ENGINE Bus STOPPING
[25/Sep/2012:12:11:27] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer((‘127.0.0.1’, 8080)) already shut down
[25/Sep/2012:12:11:27] ENGINE Stopped thread ‘Autoreloader’.
[25/Sep/2012:12:11:27] ENGINE Stopped thread ‘_TimeoutMonitor’.
[25/Sep/2012:12:11:27] ENGINE Bus STOPPED
[25/Sep/2012:12:11:27] ENGINE Bus EXITING
[25/Sep/2012:12:11:27] ENGINE Bus EXITED

从上面的结果中发现第一程序无法运行成功,原因是CherryPy默认的8080端口已被占用。可通过修改配置进行重新指定端口号:

第1行,导入CherryPy的模块。

第3行,HelloWorld类中有一个index方法,index这个方法名会对应到请求的URL中的内容。即http://127.0.0.1:3721/index 会自动调用这个方法。index方法对应的URL是也对应到http://127.0.0.1:3721/这个地址,index 相当于一个默认的方法,类似于IIS/Apache中设置的index.html、default.html等页面。换个别的方法名:

这是要执行相同的方法,则不能访问http://127.0.0.1:3721/这个地址,需要访问http://127.0.0.1:3721/hello  这个地址才行。

第4行,return的字符串直结返回客户端的执行结果。

第5行,为了防止代码中的一些方法不被外部调用,每个方法都需要添加类似 hello.exposed = False 的代码。 hello.exposed = False  可使用 @cherrypy.expose 标记,但是需要放在方法的上面。如:

第8行,发布一个HelloWorld的实例,并启动内置的Web服务器。

一些搞定以后,再执行 E:\CherryPy>python hello_world.py 的结果为:

E:\CherryPy>python hello_world.py
[25/Sep/2012:12:45:42] ENGINE Listening for SIGTERM.
[25/Sep/2012:12:45:42] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at ” has an empty config.

[25/Sep/2012:12:45:42] ENGINE Started monitor thread ‘_TimeoutMonitor’.
[25/Sep/2012:12:45:42] ENGINE Started monitor thread ‘Autoreloader’.
[25/Sep/2012:12:45:43] ENGINE Serving on 127.0.0.1:3721
[25/Sep/2012:12:45:43] ENGINE Bus STARTED

至此第一个程序运行成功,但是我们还没看到他到底呈现什么样子。

四、网页中进行调试

使用浏览器打开http://127.0.0.1:3721,看到的就是一个输出 Hello World!的页面。复杂点的可以在URL中传递参数~,先修改下代码为:

在浏览器里浏览http://127.0.0.1:3721/static/abc/123/xyz.jpg,输出的结果为: static module : abc/123/xyz.jpg

或者采用以下方式指定:

则访问:http://127.0.0.1:3721/index/张/无忌 输出的内容为:Hello World! 张无忌

 

码字很辛苦,转载请注明来自标点符《CherryPy安装调试记录》

评论

  1. txx #1

    继续加油

    回复
    2012-09-26