TurboGears

维基百科,自由的百科全书
跳到导航 跳到搜索
TurboGears
TgGear.png
开发者 Kevin Dangoor(原作者),Mark Ramm(TG2领头人)等。
初始版本 2005年9月,​13年前​(2005-09
稳定版本
稳定版本
2.3.8[1]
(2016年3月6日,​2年前​(2016-03-06
编程语言 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(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库。[2].

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

可以使用各种样板系统来开发网页元件。

参考资料[编辑]

外部链接[编辑]