pyramid getting start
1 安装pyramid
官方建议使用virtualenv安装pyramid:
$ cd /path/to/your/virtual/env
$ virtualenv –no-site-packages pyramid
$ cd pyramid $ bin/pip install pyramid
安装的东东比较多:
库 | 用途 |
---|---|
pyramid | web 框架 |
Chameleon | 模板 |
Mako | 另一个模板 |
WebOb | WSGI 框架 |
repoze.lru | cache支持 |
zope.interface | ZCA的接口框架 |
zope.deprecation | 实现“不建议使用”功能,可以用于模块、类、函数、方法和属性 |
venusian | 延迟修饰(deferring decorator)功能 |
translationstring | 国际化 |
PasteDeploy | WSGI应用部署工具 |
MarkupSafe | 标记语言支持 |
如果使用的是pyramid 1.3a7,还需要安装waitress(Pylons项目下面的一个WSGI server):
$ bin/pip install waitress
2 创建工程
pyramid支持三种类型的工程模板:
工程模板 | 描述 |
starter | 最基本的web框架 |
zodb | 使用漫游(traversal)实现URL映射,并使用ZODB进行持久化 |
alchemy | 使用URL dispatch实现URL映射,并使用SQLAlchemy进行持久化 |
如果使用过Zope,当然选择zodb模板会比较熟悉,但如果不是,不妨尝试一下alchemy,因为SQLAlchemy几乎成了python ORM的事实标准。
使用alchemy工程模板创建工程,只需要执行命令:
$ pyramid/bin/pcreate -s alchemy MyProject
pyramid会创建如下的目录结构和文件:
MyProject/ ├── CHANGES.txt ├── MANIFEST.in ├── README.txt ├── development.ini ├── myproject │ ├── __init__.py │ ├── models.py │ ├── scripts │ │ ├── __init__.py │ │ └── initializedb.py │ ├── static │ │ ├── favicon.ico │ │ ├── footerbg.png │ │ ├── headerbg.png │ │ ├── ie6.css │ │ ├── middlebg.png │ │ ├── pylons.css │ │ ├── pyramid-small.png │ │ ├── pyramid.png │ │ └── transparent.gif │ ├── templates │ │ └── mytemplate.pt │ ├── tests.py │ └── views.py ├── production.ini ├── setup.cfg └── setup.py
先看一下MyProject/目录,这是一个典型的python工程发布结构,其中的一些文件如下:
文件 | 说明 |
---|---|
CHANGES.txt | 变更说明,可以使用ReStructuredText格式 |
MANIFEST.in | 装箱文件,决定哪些代码会被发布 |
README.txt | 项目简介,使用ReStructuredText 格式编写。 |
development.ini | PasteDeploy配置文件,用于开发阶段 |
production.ini | PasteDeploy配置文件,用于发布阶段 |
setup.cfg和setup.py | setuptools的配置文件和执行文件 |
如果需要对这个结构进行扩展,可以参考python开源项目目录结构。
在MyProject目录下还会创建一个python package:myproject,这是放置Pyramid应用。如果用过Django,会发现这个目录结构与Django的很像。简单说明一下:
文件/目录 | 说明 |
---|---|
_init__.py | Python package初始化脚本。Pyramid框架在其中放置了一个main函数,作为一些命令(如pserve,pshell,pviews等)的入口。 |
models.py | 模型代码。在使用alchemy工程模板时该文件包含了SQLAlchemy的基本代码和一个model类的例子 |
scripts | 开发用的一些脚本工具 |
static | web静态文件 |
templates | 模板目录 |
tests.py | 单元测试代码 |
views.py | 视图代码 |
3 运行
运行需要三个步骤:测试、部署、运行
$ python setup.py test -q
$ python setup.py develop
$ pserve development.ini
如果是第一次运行web应用,可能还需要初始化数据库:
$ initialize_MyProject_db development.ini
注:这里面的python、pserve和都是 /path/to/your/virtual/env/pyramid/bin 下面的脚本。
在用pserve运行后,可以从浏览器看到web应用了:http://0.0.0.0:6543