Python 框架TurboGears 2 入门文档《Wiki Tutorial》翻译校正,原文地址:Whett


本文是Python TurboGears 2框架的入门文档《Whetting the Appetite: make a Wiki in 20 Minutes》的简单翻译,并对一些文档中笔误或出错的地方做简单的校正。

原文地址:Whetting the Appetite: Make a Wiki in 20 Minutes

※注意:因TurboGears 项目是一个 “大框架(megaframework)”,也就是说它是由现有的子项目构成的。所以,不同版本的TurboGears 会采用不同的组件集成(你也可以自定义),由此也产生一些因组件升级,导致用法不同的问题。上文的链接导向最新的文档说明,可能在您看到该文档时已经有新的改变,请留意。或者,采用下面文档备份:点击这里下载文件

一、安装

TurboGears 2 基于Python 2.6 或 2.7版本,可通过pip 安装。这里以红旗Asianux 4.0 SP2 为操作平台说明。

1. 安装pip

# easy_install pip

2. 安装独立运行环境

为了避免污染现有运行环境,这里安装一个虚拟运行环境,然后再安装TurboGears 2框架。

# pip install virtualenv
# virtualenv tg22env
# . tg22env/bin/activate

由此,将进入虚拟运行系统中:

(tg22env)[root@iscsi-server ~]#

3. 安装TurboGears2

(tg22env)[root@iscsi-server ~]# pip install -i http://tg.gy/current tg.devtools

这将从官网下载最新的TurboGears2 ,我当前使用的是TurboGears2-2.2.2-py2.6.egg-info 版本。

二、快速开始

1. 创建基础架构

TurboGears2 提供一整套的工具paster 协助开发,可用于快速搭建基础平台:

(tg22env)# paster quickstart
Enter project name: Wiki 20
Enter package name [wiki20]:
Would you prefer to use an alternative template system? (m=mako, j=jinja, k=kajiki, n=no [default]):
Do you need authentication and authorization in this project? ([yes]/no):

构建的目录如下:

~/tg22env/Wiki-20/wiki20

其中,Wiki-20 是项目根路径位置,其内容如下:

Wiki-20
├── development.ini <- 开发环境相关配置文件
├── ez_setup
├── MANIFEST.in
├── migration
├── README.txt
├── setup.cfg
├── setup.py <- 配置脚本
├── setup.pyc
├── test.ini
├── wiki20 <- 项目位置
└── Wiki_20.egg-info

wiki20 是项目名称,其内容如下:

2. 下载依赖库软件

TurboGears 直接采用第三方的库框架,所以需要下载这些依赖的库软件包。它们是由Wiki-20/setup.py 配置文件决定的,本项目wiki 需使用docutils 类,所以要编辑该文件,内容如下:

install_requires=[
"TurboGears2 >= 2.2.2",
"Genshi",
"zope.sqlalchemy >= 0.4",
"repoze.tm2 >= 1.0a5",
"sqlalchemy<0.8b1",
"sqlalchemy-migrate",
"repoze.who",
"repoze.who-friendlyform >= 1.0.4",
"tgext.admin >= 0.5.1",
"repoze.who.plugins.sa",
"tw2.forms",
"docutils",
]

蓝色部分是新加的内容,然后用pip 下载安装:

(tg22env)[root@iscsi-server Wiki-20]# pip install -e .

※ 注意:当前路径是Wiki-20 目录。

3. 启动Web 服务

TurboGears2 提供一个建议的Web 服务,可用于快速测试,默然监听在127.0.0.1。可修改development.ini 配置文件:

[server:main]
use = egg:paste#http
host = 192.168.228.180 # ip 地址
port = 8080

启动服务:

(tg22env)[root@iscsi-server Wiki-20]# paster serve development.ini --reload &
Starting subprocess with file monitor
Starting server in PID 6185.
serving on http://192.168.228.180:8080

可能会有些DeprecationWarning 的报错,这是因为某些库更新后,用法改变导致的,通常影响不大。

※ 注意:运行路径在Wiki-20 根目录下。

打开浏览器,访问http://ip:8080/

点击在新窗口中浏览此图片

至此,基本平台已搭建完毕,后面就可以进行开发的工作了。

三、控制器和视图

TurboGears 与大多基于MVC 架构的框架都是类似的,由数据模型——视图——控制器三部分组成。

1. 控制器部分

基础控制器是Wiki-20/wiki20/controllers/root.py 文件:

class RootController(BaseController):

其中,@expose 表示使用哪个视图模板:

@expose('wiki20.templates.index')

相关内容