活着就是折腾,最近事情多的一塌糊涂,烦躁的很,导致log4d也荒废一个月了。今天趁着周五晚上,梳理一下最近学习的pylons知识。

image

关于Pylons

Pylons是一个用pythons写的web框架,优点是配置灵活,默认使用[Mako](http: //www.makotemplates.org/)作为Template,SQLAlchemy作为 ORM映射。使用BSD作为授权协议。

托WSGI的福,python的web框架超多,甚至高手5分钟可以自己手写一个web框架,这种情况也导致了Python web框架的纷杂。我这里选择Pylons(其实是被选择),并不是说Pylons一定最好,而是比较适合当前项目。更多的Python web框架对比建议看这篇[浅谈Python web框架](http://feilong.me/2011/01/talk-about-python-web- framework),另外,这个Best Web- Framework有直观的对比。

Pylons环境配置

因为开发机是刚到手的ThinkPad,没有冒险安装Linux,所以这里的安装环境是Win7 + Python 2.6 + MySQL5.1。

1、安装Pylons

Pylons似乎没有方便的easy_install,原因是由于Pylons在安装过程中,会生成一个目标环境。这个环境包括完整的Python环境,从而与系统自 带Python环境独立开来,防止第三方库的相互污染。Pylons官方提供了一个Python go- pylons.py脚本进行安装。

通过在shell键入命令python go-pylons.py myb_env安装,其中myb_env代表目标环境,会在当前目录下面生成一个myb_en v文件夹,myb_env也可以使用绝对路径代替。在生成完之后请不要随意移动这个目录,因为环境里生成的Python脚本硬编码了绝对路径。

2、安装mysql-python驱动

我使用的是MySQL数据库,使用mysql-python驱动,windows下具体安装过程可以参见[http://fendou.org/2010/06/17 /install-python26-mysql-python-on-windows/](http://fendou.org/2010/06/17 /install-python26-mysql-python-on-windows/) 需要修改一下源码和加入几个dll。

3、生成egg包,下载第三方依赖

在目标项目下面,执行python setup.py develop,这将执行项目需要的三方依赖,设定依赖可以到setup.py中install_req uires进行配置。这个步骤用到了easy_install,所以请确保python/script下面有easy_install的可执行文件。windows 下安装easy_install可以参考这里[http://thinkhole.org/wp/2007/02/01/howto-install- setuptools-in-windows/](http://thinkhole.org/wp/2007/02/01/howto-install- setuptools-in-windows/)。

呼啦啦一大串命令跑完之后,就ok了。

4、安装额外的三方依赖(可选)

根据实际情况操作吧,我这里使用了easy_install python-memcachedeasy_install pil,前者是memcache的python驱动,后者是python图形库。

5、初始化数据库

托SQLAlchemy的福,我们可以让它自动给我们创建映射表。首先确保在model下面配置好model类。

class Person(Base):
    __tablename__ = "person"

id = Column(Integer, primary_key=True)

name = Column(String(100))

email = Column(String(100))

def init(self, name=’’, email=’’):

self.name = name

self.email = email

然后在目标项目下面的development.ini中配置数据库连接字符串。

# SQLAlchemy database URL
#sqlalchemy.url = sqlite:///%(here)s/myb.db
sqlalchemy.url = mysql://test:test@localhost/myb?charset=utf8&use_unicode=0

最后在shell中执行paster setup-app development.ini,即可初始化好数据库结构。

如果需要在初始化时候加入测试数据,可以在项目目录下的websetup.py中setup_app方法填充数据。

如果paster运行错误,则使用easy_install Paste安装一下paster。

6、运行app

在shell中运行paster serve --reload development.ini即可启动网站,通过访问127.0.0.1:5000访问。

pylons中常用的paster命令([via](http://www.cnblogs.com/JustRun1983/archive/2009/12

/17/1626771.html))

paster create -t pylons helloworld

创建一个以pylons为模板的项目,项目名字是helloworld

paster create –list-templates

显示当前的pylons中有多少可以使用的模板

paster serve –reaload development.ini

最常用的命令了,启动调式程序的时候都会使用得到它。

paster controller helloworld

常见一个新的controller,名字是helloworld.会在项目目录controller中生成一个hellowolrd.py文件。这个是一个最基本的c ontroller文件了,可以修改代码,完成我们的目的。

paster setup-app development.ini

安装数据库表。

当配置好了model的__init__.py文件,执行这个命令按照要求生成数据库结构。

数据库默认是sqlite的,如果要修改sqlite数据库路径或者更换成mysql数据库,需要修改development.ini文件。

更多的文档

[Pylons Reference Documentation

](http://docs.pylonsproject.org/projects/pylons_framework/dev/index.html)

SQLAlchemy 0.6.8 Documentation

Mako 0.4.1 Documentation

Paste Script v1.7 documentation


原文链接: Pylons使用小记 | Log4D

3a1ff193cee606bd1e2ea554a16353ee

欢迎关注我的微信公众号:窥豹

窥豹