TurboGears

TurboGears
開發者Kevin Dangoor(原作者),
Mark Ramm(TG2领头人)等。
首次发布2005年9月,​18年前​(2005-09
当前版本
  • 2.4.3 (2020年3月1日)[1]
編輯維基數據鏈接
源代码库
  • github.com/TurboGears/tg2
編輯維基數據鏈接
编程语言Python
操作系统跨平台
类型Web应用框架
许可协议MIT許可證GNU宽通用公共许可证
网站www.turbogears.org

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

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

特色

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

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片段的特征。
    • Genshi英语Genshi (templating language)是个比Kid更成功的模板引擎,在版本1.1之后中成为默认支持,在语法上100%接近Kid。
  • 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. ^ 1.0 1.1 Release 2.4.3. 2020年3月1日 [2020年3月2日]. 
  2. ^ ToscaWidgets Cookbook—TG2 v2.0 documentation. [2012-07-26]. (原始内容存档于2012-05-01). 

外部連結

  • 官方网站 在维基数据上编辑此内容
C++
  • CppCMS英语CppCMS
  • Wt英语Wt (web toolkit)
CLI
  • ASP.NET
    • Core
    • AJAX
    • 动态数据英语ASP.NET Dynamic Data
    • MVC
    • Razor英语ASP.NET Razor
    • Web Forms
  • DNN英语DotNetNuke
  • BFC英语Base One Foundation Component Library
  • MonoRail英语MonoRail (software)
  • OpenRasta英语OpenRasta
  • Umbraco
ColdFusion
  • CFWheels
  • ColdBox Platform英语ColdBox Platform
  • ColdSpring英语ColdSpring Framework
  • Fusebox英语Fusebox (programming)
  • Mach-II英语Mach-II
  • Model-Glue英语Model-Glue
Common Lisp
  • Caveman2英语Caveman2
  • CL-HTTP英语CL-HTTP
  • UnCommon Web英语UnCommon Web
  • Weblocks
D
  • Vibe.d英语Vibe.d
Haskell
  • Happstack英语Happstack
  • Yesod英语Yesod (web framework)
  • Snap英语Snap (web framework)
Java
  • AppFuse英语AppFuse
  • Flexive英语Flexive
  • Grails英语Grails (framework)
  • GWT
  • ICEfaces英语ICEfaces
  • ItsNat英语ItsNat
  • JavaServer Faces
  • JHipster英语JHipster
  • Jspx英语Jspx-bay
  • JWt英语JWt (Java web toolkit)
  • OpenXava英语OpenXava
  • Play
  • Reasonable Server Faces英语Reasonable Server Faces
  • Remote Application Platform英语Remote Application Platform
  • RIFE英语RIFE
  • Seam英语JBoss Seam
  • Spring
  • Stripes英语Stripes (framework)
  • Struts
  • Tapestry
  • Vaadin英语Vaadin
  • Vert.x
  • WebWork英语WebWork
  • Wicket
  • WaveMaker英语WaveMaker
  • ZK
JavaScript
  • Ample SDK英语Ample SDK
  • Angular英语Angular (application platform)/AngularJS
  • Backbone.js
  • Chaplin.js英语Chaplin.js
  • Closure英语Google Closure Tools
  • Dojo Toolkit
  • Ember.js
  • Extjs
  • JQuery
  • Meteor英语Meteor (web framework)
  • MooTools英语MooTools
  • Node.js
  • Prototype
  • React
  • Rico
  • script.aculo.us英语script.aculo.us
  • Sencha Touch英语Sencha Touch
  • SproutCore英语SproutCore
  • Vue.js
  • Wakanda英语Wakanda (software)
Perl
  • Catalyst
  • Dancer英语Dancer (software)
  • Mason英语Mason (Perl)
  • Maypole
  • Mojolicious英语Mojolicious
  • WebGUI
PHP
  • CakePHP英语CakePHP
  • CodeIgniter
  • Fat-Free
  • FuelPHP
  • Gyroscope英语Gyroscope (software)
  • Horde英语Horde (software)
  • Kohana英语Kohana (framework)
  • Laravel
  • Lithium英语Lithium (software)
  • Midgard英语Midgard (software)
  • MODX英语MODX
  • Nette英语Nette Framework
  • Phalcon
  • PRADO英语PRADO (framework)
  • Qcodo英语Qcodo
  • Silex英语Silex (web framework)
  • SilverStripe
  • Symfony
  • TYPO3
  • Xaraya英语Xaraya
  • XOOPS
  • Yii英语Yii
  • Zend framework
Python
Ruby
  • Camping英语Camping (microframework)
  • Merb英语Merb
  • Padrino英语Padrino (web framework)
  • Ruby on Rails
  • Sinatra英语Sinatra (software)
Rust
  • Yew
Scala
  • Lift
  • Play
  • Scalatra英语Scalatra
Smalltalk
  • AIDA/Web英语AIDA/Web
  • Seaside英语Seaside (software)
其他语言
  • Application Express英语Oracle Application ExpressPL-SQL
  • Grails英语Grails (framework)Groovy
  • Kepler英语Kepler (software)Lua
  • OpenACS英语OpenACSTcl
  • Phoenix英语Phoenix (web framework)Elixir
  • SproutCore英语SproutCoreJavaScript-Ruby
  • YawsErlang