TurboGears - 依赖关系


TurboGears 项目包含以下目录 -

  • Config - 项目设置和配置所依赖的地方

  • 控制器- 所有项目控制器,Web应用程序的逻辑

  • i018n - 支持的语言的翻译文件

  • Lib - 实用的 python 函数和类

  • 模型- 数据库模型

  • 公共静态文件- CSS、JavaScript 和图像

  • 模板- 我们的控制器公开的模板。

  • 测试- 完成的一组测试。

  • Websetup - 在应用程序设置时执行的功能。

如何安装项目

现在需要安装该项目。项目的基目录中已提供setup.py 。执行此脚本时会安装项目依赖项。

Python setup.py develop

默认情况下,在项目设置时安装以下依赖项 -

  • 烧杯
  • 源氏
  • Zope.sqlalchemy
  • sqlalchemy
  • 蒸馏器
  • 世界卫生组织
  • tw2.forms
  • tgext.admin ≥ 0.6.1
  • 网页助手2
  • 通天塔

安装后,通过在 shell 中发出以下命令开始在开发服务器上提供项目服务 -

Gearbox serve –reload –debug

按照上述命令来提供预构建的示例项目。在浏览器中打开http://localhost:8080。这个现成的示例应用程序简要介绍了 TurboGears 框架本身。

项目窗口

在此 Hello 项目中,默认控制器在controllers 目录中创建为Hello/hello/controllers.root.py。让我们使用以下代码修改 root.py -

from hello.lib.base import BaseController
from tg import expose, flash

class RootController(BaseController):
   movie = MovieController()
   @expose()
   def index(self):
      return "<h1>Hello World</h1>"
		
   @expose()
   def _default(self, *args, **kw):
      return "This page is not ready"

一旦基本的工作应用程序准备就绪,就可以在控制器类中添加更多视图。在上面的Mycontroller类中,添加了一个新方法sayHello() 。@expose ()装饰器将/sayHello URL 附加到它。此函数旨在接受 URL 中的名称作为参数。

通过“gearboxserve”命令启动服务器后,http://localhost:8080。即使输入以下 URL,Hello World 消息也会显示在浏览器中 -

http://本地主机:8080/

http://localhost:8080/index

所有这些 URL 都映射到RootController.index()方法。此类还具有_default()方法,只要 URL 未映射到任何特定函数,就会调用该方法。对 URL 的响应通过 @expose() 装饰器映射到函数。

可以从 URL 向公开的函数发送参数。以下函数从 URL 读取名称参数。

@expose()
def sayHello(self, name):
   return '<h3>Hello %s</h3>' %name

以下输出将在浏览器中显示为对 URL 的响应 - http://localhost:8080/?name=MVL

Hello MVL

TurboGears 自动将 URL 参数映射到函数参数。我们的RootController类继承自BaseController。这在应用程序的lib 文件夹中定义为base.py。

其代码如下 -

from tg import TGController, tmpl_context
from tg import request

__all__ = ['BaseController']

def __call__(self, environ, context):
   tmpl_context.identity = request.identity
   return TGController.__call__(self, environ, context)

TGController.__call__分派请求路由到的控制器方法。