TurboGears

维基百科,自由的百科全书
跳转至: 导航搜索
TurboGears
開發者 Kevin Dangoor (原作者), Mark Ramm (TG2), .et al.
穩定版本 2.1.4/
December 12, 2011; 7 months ago
程式語言 Python
作業系統 Cross-platform
類型 Web application framework
許可協議 MIT License, LGPL
網站 http://www.turbogears.org

TurboGears 是一個提供網頁前端到後端整合的網站框架,使用 Python 動態語言。

Python 語言上有無數網頁開發模組可選擇。要挑選合適的模組會花上開發者寶貴的時間精力,TurboGears 就像是 Python 網頁開發上的發佈套件(Linux发行版),整合各種推薦的 Python 開放原始碼模組,提供簡單易用的介面與一致的系統體驗。

目录

特色 [编辑]

  • 用最好的 Python 開源組件 (Best of Breed Modules)
  • 互動式的開發經驗 (Interactive Programming Experience)
  • 可自由組合偏好的開發模塊 (Integration)
  • 內建網頁伺服器,ORMAJAX 能力,預設可以產生 html, json 等格式。
  • 不用安裝 Apache 網頁伺服器就可以開始開發網頁應用程式,可以單獨佈署或搭配 Apachelighttpd 網頁伺服器使用
  • 不用安裝資料庫 MySQLPostgreSQL 就可以開始開發資料庫網站
  • 方便的佈署能力
  • 眾多插件 (Extension) 支援
  • 可擴充的命令列工具(tg-admin),可以協助產生基本專案或插件模板和建立資料庫等工作。
  • 可擴充的網頁介面的工具箱(ToolBox),內含資料模型設計工具(Model Designer),資料編輯工具 (Catwalk),網站多國語言化工具等

TurboGears 组件 [编辑]

TurboGears 使用 MVC (Model, View, Controller) 的方式組織網站,提供網頁框架快速生成工具,開發中自動即時重載的網頁伺服器。

TurboGears 是由许多各自独立的库和中间层建立的。其中一些默认的工具从1.x至2.x各不相同,但是大多数的这些组件都能根据配置而被互相替用。 以下是一些开发者会使用到的主要组件。

TurboGears 2.x 组件 [编辑]

  • SQLAlchemy (Model) - 定义了数据表的结构,并且让用户的控制层可以访问这些对象。
  • Genshi (View) - 定义了用以生成HTML或XHTML的模板,用于前台和客户端访问的页面。
  • Pylons (Controller) - 负责处理后台逻辑与显示数据的页面之间的中间层。默认的,使用了Paster作为服务器。但是用户也可以连接Apache, Nginx,或者使用WSGI与其兼容。
  • Repoze - Repoze.who & Repoze.what 是用来处理安全(访问授权)控制,repoze预先声明了谁在什么条件下可以访问哪些页面。
  • Tosca Widgets - 这是主要用来创建表单和复杂GUI的一个库。Tosca默认只会生成简单的HTML表单,但是也能用来连接更高级的JavaScript工具包。不同于 TurboGears 1.x, 现在已不再用有一个集成的JavaScript库。[1].

TurboGears 1.x 组件 [编辑]

  • SQLObject (Model) - data backend that can create a database or interface with existing data on many database servers.
    • SQLAlchemy 会在TurboGears >= 1.1中成为默认的库。
  • Kid (View) - XHTML frontend templating engine where all templates are valid XHTML or XML files that are usually made in a way that allows opening these templates as simple XHTML files to check the design. At the same time features are provided to embed snippets of Python in a XMLish manner.
    • Genshi 是个比Kid更成功的模板引擎,将会在TurboGears >= 1.1版本中成为默认支持,在语法上100%接近Kid。
  • CherryPy (Controller) - middleware that allows web applications to be programmed by writing event handlers that return data to (in TurboGears case) templates. The same data can also be received in Ajax fashion as a JSON data stream.
  • MochiKit 对于TurboGears 1.x来说,是一个推荐的,但是可选的JavaScript库。被设计来让JavaScript的开发更加Pythonic. 主要用于实现 Ajax 特性,提供一些能够异步取得JSON数据流的组件。

配置與佈署 [编辑]

  • 可自由使用超過五千種 Python 語言各種領域的模組
  • TurboGears 大部分組件都可自由替換
  • 使用 Python 語言的 easy_install 命令提供一致的網路自動安裝擴展功能。
  • 可以使用 tg2exe 將網頁應用程式包裝成 Windows 平台可獨立執行的程式

Web伺服器支持 [编辑]

TurboGears 的內置網頁伺服器來自於 CherryPy 模組,已經被證實可以單獨佈署。 佈署時也可以搭配 Apache 或者 Lighttpd 使用

資料庫支持 [编辑]

TurboGears 透過 ORM 支持

  • SQLite
  • MySQL
  • Postgres
  • Firebird
  • MS SQL Server
  • Oracle

等資料庫

系統要求 [编辑]

Python 語言版本 2.3 以上, 1.0.2 之後的版本支援 python 2.5

1.5版推荐使用Python 2.6

類似的技術 [编辑]

網頁元件 [编辑]

TurboGears 使用網頁元件(widgets),從系統層級(而非樣板)支持網頁程式碼重用。提供 MVC 支援外的方便形式。

可以使用各種樣板系統來開發 網頁元件。

参考资料 [编辑]

外部連結 [编辑]

參考站點 [编辑]