TurboGears

维基百科,自由的百科全书
跳到导航 跳到搜索
TurboGears
TgGear.png
開發者Kevin Dangoor(原作者),Mark Ramm(TG2领头人)等。
初始版本2005年9月,​15年前​(2005-09
穩定版本
2.4.3
(2020年3月1日,​8個月前​(2020-03-01[1]
源代码库 編輯維基數據鏈接
编程语言Python
操作系统跨平台
类型Web应用框架
许可协议MIT許可證GNU宽通用公共许可证
网站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(模型、视图、控制器)的方式組織網站,提供網頁框架快速生成工具,開發中自動即時重載的網頁伺服器。

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

以下是一些开发者会使用到的主要组件。

TurboGears 2.x组件[编辑]

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

TurboGears 1.x组件[编辑]

  • SQLObject(模型) - 可以在很多数据库服务器上建立数据库或同现存数据相接合(interface)的数据后端。
    • SQLAlchemy会在TurboGears >= 1.1中成为默认的库。
  • Kid英语Kid (templating language)(视图)- XHTML前端模板引擎,这里所有模板都是有效的XHTML或XML文件,它们通常以允许将这些模板作为简单的XHTML文件打开检查设计的方式来制作。同时还提供以XML式的方式嵌入Python片段的特征。
    • Genshi英语Genshi (templating language)是个比Kid更成功的模板引擎,将会在TurboGears >= 1.1版本中成为默认支持,在语法上100%接近Kid。
  • CherryPy英语CherryPy(控制器)- 允许web应用通过书写返回数据到(在TurboGears情况下)模板的事件处理器的方式来编程。相同的数据还可以按Ajax风格接收为一个JSON数据流。
  • MochiKit英语MochiKit对于TurboGears 1.x来说,是一个推荐的,但是可选的JavaScript库。被设计来让JavaScript的开发更加Python化。主要用于实现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支援外的方便形式。

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

参考资料[编辑]

  1. ^ Project Status. 
  2. ^ ToscaWidgets Cookbook—TG2 v2.0 documentation. [2012-07-26]. (原始内容存档于2012-05-01). 

外部連結[编辑]