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

TurboGears
開發者Kevin Dangoor(原作者),
Mark Ramm(TG2領頭人)等。
首次發布2005年9月,​19年前​(2005-09
當前版本2.4.3[1]在維基數據編輯(2020年3月1日,4年前)
原始碼庫 編輯維基數據鏈接
程式語言Python
作業系統跨平台
類型Web應用框架
許可協議MIT許可證GNU寬通用公共許可證
網站www.turbogears.org

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

特色

選用最好的Python開源組件,可自由組合偏好的開發模塊,提供互動式的開發經驗。內建網頁伺服器,ORMAJAX能力,預設可以產生html、json等格式。不用安裝Apache網頁伺服器就可以開始開發網頁應用程式,可以單獨佈署或搭配Apachelighttpd網頁伺服器使用。有方便的佈署能力,有眾多插件支援。

TurboGears組件

TurboGears使用MVC(模型、視圖、控制器)的方式組織網站,提供網頁框架快速生成工具,開發中自動即時重載的網頁伺服器。TurboGears是由許多各自獨立的庫和中間層建立的。其中一些默認的工具從1.x至2.x各不相同,但是大多數的這些組件都能根據配置而被互相替用。以下是一些開發者會使用到的主要組件。

TurboGears 2.x組件

  • SQLAlchemy(模型)- 定義了數據表的結構,並且讓用戶的控制層可以訪問這些對象。
  • Ming(模型)- 提供到MongoDB的數據訪問層,非常像SQLAlchemy,它定義如何連接MongoDB搜集到用戶的控制器可以交互的Python對象。
  • Genshi英語Genshi (templating language)(視圖)- 定義了用以生成HTML或XHTML的模板,用於前台和客戶端訪問的頁面。
  • Repoze - Repoze.who 是用來處理安全(訪問授權)控制,repoze預先聲明了誰在什麼條件下可以訪問哪些頁面。
  • ToscaWidgets - 這是主要用來創建表單和複雜GUI的一個庫。Tosca默認只會生成簡單的HTML表單,但是也能用來連接更高級的JavaScript工具包。不同於TurboGears 1.x,現在已不再去擁有一個集成的JavaScript庫。[2]
  • Gearbox - 是TurboGears用來管理項目的工具箱,建立新項目並充當TurboGears應用,但是用戶也可以連結到ApacheNginx或任何其他WSGI兼容的webserver。

在版本2.3之前還用到:

  • Pylons(控制器)- 負責處理後台邏輯與顯示數據的頁面之間的中間層。
  • Paster英語Python Paste - 默認作為伺服器。但是用戶也可以連接ApacheNginx、或者使用WSGI兼容伺服器。
  • Repoze.what - 用來分別處理授權。

TurboGears 1.x組件

  • SQLObject(模型) - 可以在很多資料庫伺服器上建立資料庫或同現存數據相接合的數據後端。
    • SQLAlchemy在版本1.1之後中成為默認的庫。
  • Kid英語Kid (templating language)(視圖)- XHTML前端模板引擎,這裡所有模板都是有效的XHTML或XML文件,它們通常以允許將這些模板作為簡單的XHTML文件打開檢查設計的方式來製作。同時還提供以XML式的方式嵌入Python片段的特徵。
  • CherryPy(控制器)- 允許web應用通過書寫返回數據到(在TurboGears情況下)模板的事件處理器的方式來編程。相同的數據還可以按Ajax風格接收為一個JSON數據流。
  • MochiKit英語MochiKit - 對於TurboGears 1.x來說,是一個推薦的可選的JavaScript庫。被設計來讓JavaScript的開發更加Python化。主要用於實現Ajax特性,提供一些能夠異步取得JSON數據流的組件。

參考資料

  • Ramm, M; Dangoor, K; Sayfan, G (November 7, 2006). Rapid Web Applications with TurboGears, Prentice Hall. ISBN 0-13-243388-5

引用

  1. ^ Release 2.4.3. 2020年3月1日 [2020年3月2日]. 
  2. ^ ToscaWidgets Cookbook—TG2 v2.0 documentation. [2012-07-26]. (原始內容存檔於2012-05-01). 

外部連結