基于python的web开发框架-CherryPy[原]
基于python的web开发框架-CherryPy
Python满足了我对编程语言的所有渴望,而且更重要的是python一直在发展,而且发展迅速。在web2.0的时候,对web站点的开发也提出了新的需求。现在许多动态语言都提供了相关的开发,名声大燥的就是现在基于ruby的rail框架,用他可以实现快速开发。好在这个世界正在走向多元化,而在这之间,python也提供了相关的解决方案。如果说,基于ruby的框架最著名的就是rail框架,而且似乎别的框架倒没听说过;而在python社区,我们的选择倒是有挺多。这些框架功能上来讲参差不齐,但是却也比较活跃。而且针对大小型应用都有不同的选择,这倒是个不错的主意。
开源运动开展的如火如荼,而我坚信python将成为这场运动的中流抵柱。python是解释型脚本语言,所以我们看到的大多数python程序都是开源的,这对我们理解模块非常有帮助。python现在发展很快,在python站点上现在已经出来python 3000的alpha2版本了,在我简单的试用了一下发现,python3000语言将更加完美,设计上将更加人性化,绝对可以和ruby一较短长。python3000在设计的时候,没有过多的考虑向前兼容性问题,许多语法将与python2.x版本不尽相同。我现在一直在用python2.5版本,觉得很不错,因为这个版本提供的相关包很多,兼容性还是不错的。在python2.x中,我们举个例子要在屏幕上输出"hello,world",我们只需输入语句 print "abc" 即可,但是在python3000这样是语法错误 的,正确的输入方法是 print ("abc"),如何,是不是有点不同。但是,这没有什么,语言向前兼容固然有好处,但同时也会成为语言发展的包袱,我却赞成语言在发展的时候,在大体架构不变的基础上,适当的不兼容也可以接受的。
python应用广泛,越来越喜欢这种语言。他的许多思想容易理解,尤其是站在自然语言的角度让人容易理解。在方方面面的应用上,python表现的既出色,而且简单,让人容易理解。这一点很不错。再者,经过多年的发展,python的用户越来越多,而提供相应的解决方案和包也越来越丰富,这样一来,让你解决问题的途径也越来越多。
再回到正题上吧。cherryPy是若干种python web开发框架中的一种,至于具体的优势我也不必多言。我只想说说我第一天用的感受。
从官网上下载到的是个zip包,我下载的版本是3.0.2,解开包后,在控制台运行python setup.py install,即可进行安装。这个包需要python2.3或以上版本的支持,我用的是2.5版,没有任何问题。安装后的包会出现在python25\lib\site-packages\cherrypy下面。cherry?好像奇瑞汽车的英文也是这个,:P.里面就是我们所包含的包了,在程序中要使用cherrypy是要先引用cherrypy包的:import cherrypy,然后即可使用。运行的时候,注意一个我们不需要启动其它的服务器,你只需要直接执行写好的python脚本就可以了,一般我们可以在浏览器中通过 http://localhost:8080来访问的。我前段时间对php有点研究,对asp也有点了解,但是你却不能用他们的思想来认识和理解cherrypy,我觉得这个包更加科学。一般情况下,一个页面对应一个类,参数传递也挺有意思。在他的tutorial下面有许多例子做得挺不错的,而且非常容易让人理解。看一下这个例子吧:
import cherrypy
class HelloWorld:
def index(self):
# Let's link to another method here.
return 'We have an important message for you!'
index.exposed = True
def showMessage(self):
# Here's the important message!
return "Hello world!"
showMessage.exposed = True
cherrypy.tree.mount(HelloWorld())
if __name__ == '__main__':
import os.path
cherrypy.config.update(os.path.join(os.path.dirname(__file__), 'tutorial.conf'))
cherrypy.server.quickstart()
cherrypy.engine.start()
我们从主入口持,首先是配置文件的读取更新,后面是服务器的快速启动,然后是启动cherrypy引擎。我们注意上面的类HelloWorld,在这个类的最下面是你的整个网站的主类,也就是cherrypy.tree.mount(HelloWorld())这句,如果有多个类的话,这一句就指定了主类,再看class中,index函数通常对应着你的index.htm文件,一般都是以function.exposed=True结束的,还有函数的返回值,以及再看看参数的传递,在index中有一个超链接important message,他的href指向了showmessage这个函数,这样一来,就非常方便了。
简单的适用了一下,我对cherrypy非常感兴趣,同时也对基于python的web开发很有兴趣。国内我所知道的好像只有豆瓣网是采用python做开发的,在国外,google许多东东也是基于python完成的,所以,美丽的python,明天会更好。