Read Sean

Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4

[Pylons] 简介+安装指南

Posted on 2009-01-25 20:05 laogao 阅读(2021) 评论(2)  编辑  收藏 所属分类: On Python

Pylons是一个Python语言的Web应用程序框架,如果你简单了解过Ruby on Rails和Django,你大概会问,Pylons有什么不一样呢?Pylons最大的特点是模块化,将处理Web应用环境下不同领域、不同问题的软件包集成在一起,形成一个整体,在提供一揽子解决方案的同时,不阻碍你选择别的替代组件。另外,Pylons是目前对WSGI标准支持最好的框架之一,未来的TurboGears 2.0也会基于Pylons构建。

Pylons从Ruby on Rails借鉴了不少东西,比如Routes,比如WebHelpers,从表面看更像是Python版的RoR,不过底下的架构应该说更加轻量和灵活,因为你可以灵活选择自己熟悉或者更贴和具体应用实际的组件,从ORM到页面模板,Pylons只是推荐一些大家普遍比较认可的选项,但并不强制你使用它们。

说完和Ruby on Rails的异同,当然也要回过头来说说同样是Python编写的Django。如果你只是想迅速的构建一个可以支撑大量访问的Web应用,Django是个不错的选择,但和RoR一样,你在很大程度上被限制在一定的pattern中:如果你按照Django的思路去实现你的应用,你会很happy;但一旦你觉得某个组件你不喜欢、不符合某个实际要求,想要来点定制,你就会觉得有些伸不开拳脚,或者工程浩大。目前感觉Django比较不爽的地方有:页面模板较弱,表现力有些不足,也有人说够用了;ORM目前是自己的一套,暂时没有成熟的SQLAlchemy支持,需要第三方包或者自己做;从架构上,Django对MVC的解读是MTV(Model-Template-View),大家都叫作controller的东东,在Django的世界里是view,以至于每次和别人解释,都要多费一番口舌。

Pylons目前版本是0.9.7(rc4),主要用到的第三方/独立组件有Paste、Routes、Beaker、Mako、FormEncode、WebHelpers和SQLAlchemy。安装方法如下:

首先你必须有Python(2.3+),然后你可以选择直接easy_install Pylons或者新建一个Virtual Environment,和系统中的Python环境隔离开,依赖的包可以独立升级。这里我们按照后一种方式,如果你是第一次使用Pylons,建议你也在独立Python virtualenv中安装。

1- easy_install virtualenv (这将安装Python虚拟环境工具)
2- python virtualenv.py ENV (创建新的虚拟环境。这里的ENV是你新建虚拟环境的路径,如"mydevenv")
3- source ENV/bin/activate (激活虚拟环境。如果是Windows的话,这里需要执行ENV\bin\activate.bat)
4- easy_install Pylons (这里使用的是虚拟环境的easy_install安装)

如果你觉得上面的步骤麻烦,Pylons开发团队提供了一个脚本来处理安装过程,下载后用Python执行即可:
http://www.pylonshq.com/download/0.9.7/go-pylons.py

如果需要SQLAlchemy,则再执行一下
easy_install SQLAlchemy

安装成功后,通过
paster create -t pylons [应用名]
即可新建Web应用主框架,然后cd到应用下,通过
paster serve --reload development.ini
启动Web服务,默认地址在
http://127.0.0.1:5000/

更详细的信息,可参考Pylons项目主页:
http://pylonshq.com/

随着使用的深入,笔者还会陆续对Pylons和其他相关组件进行进一步的介绍。祝各位农历新年快乐!


Feedback

# re: [Pylons] 简介+安装指南  回复  更多评论   

2009-04-26 17:16 by limp——t
不错
不过没有讲解helloworld。。。

# re: [Pylons] 简介+安装指南  回复  更多评论   

2012-10-30 10:22 by the5fire
不错的介绍,学习了

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问