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支援外的方便形式。

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

参考资料[编辑]

外部連結[编辑]

參考站點[编辑]