活着就是折腾,最近事情多的一塌糊涂,烦躁的很,导致log4d也荒废一个月了。今天趁着周五晚上,梳理一下最近学习的pylons知识。
关于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-memcached
和easy_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
Paste Script v1.7 documentation
原文链接: Pylons使用小记 | Log4D
3a1ff193cee606bd1e2ea554a16353ee
欢迎关注我的微信公众号:窥豹