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