📝 TurboGears教程
32篇技术文档📅  最后修改于: 2020-10-19 03:32:22        🧑  作者: Mango
为了增强Web应用程序的性能,特别是如果它涉及冗长的操作,则使用缓存技术。 TurboGears提供两种类型的缓存技术-全页缓存它在HTTP协议级别工作,通过让用户的浏览器或中间代理服务器(例如Squid)拦截请求并返回文件的缓存副本,从而避免了对服务器的整个请求。应用程序级缓存这在应用程序服务器中可以缓存通常是复杂数据库查询结果的计算值,以便将来的请求可以避免需要重新计算值。对于Web应用程序,...
📅  最后修改于: 2020-10-19 03:32:39        🧑  作者: Mango
尽管可以在TurboGears应用程序中使用SQL对任何关系数据库执行CRUD操作,但建议使用SQLAlchemy, Python工具包是功能强大的对象关系映射器,它为应用程序开发人员提供了SQL的全部功能和灵活性。除了通过SQLAlchemy支持基于SQL的数据库外,TurboGears还通过Ming支持MongoDB数据库。在本节中,将讨论SQLAlchemy的功能。什么是ORM(对象关系映射...
📅  最后修改于: 2020-10-19 03:32:55        🧑  作者: Mango
让我们添加一个学生模型,这将在我们的sqlite数据库中建立一个学生表。你好\你好\模型\ student.py现在,将此模型添加到__init__.py中的init_model()函数。此函数已包含auth模型。在下面添加我们的学生模型。如果要在设置模型时用一些数据初始化表,请将其添加到websetup软件包的bootstrap.py中。在bootstrap()函数添加以下语句。通过运行变速箱的...
📅  最后修改于: 2020-10-19 03:33:19        🧑  作者: Mango
以下会话方法执行CRUD操作-DBSession.add(model object)-将记录插入映射表。DBSession.delete(model object)-从表中删除记录。DBSession.query(model).all()-从表中检索所有记录(对应于SELECT查询)。您可以使用过滤器属性将过滤器应用于检索到的记录集。例如,为了在students表中检索city =“ Hydera...
📅  最后修改于: 2020-10-19 03:33:33        🧑  作者: Mango
ToscaWidgets包含一个DataGrid控件,该控件提供了一种以表格形式显示数据的快速方法。 DataGrid对象声明如下-现在,showgrid()函数检索学生表中的所有记录,并将数据公开给grid.html模板。首先是showgrid()函数的代码,然后在下面给出了grid.html代码-showgrid()grid.html在浏览器中输入http:// localhost:8080 ...
📅  最后修改于: 2020-10-19 03:33:54        🧑  作者: Mango
TurboGears提供了一个方便的装饰器,称为paginate(),可在页面中划分输出。该装饰器与Exposure()装饰器结合使用。 @Paginate()装饰器将查询结果的字典对象作为参数。另外,每页的记录数由items_per_page属性的值确定。确保将tg.decorators中的分页函数导入代码中。重写root.py中的listrec()函数,如下所示:每页的项目设置为三个。在stu...
📅  最后修改于: 2020-10-19 03:34:16        🧑  作者: Mango
TurboGears提供了tgext.admin扩展名,该扩展名由tgext.crud和sprox支持。这个Sprox是一个软件包,用于直接从数据库模式创建Web窗口小部件。这可以用来自动创建简单的管理页面,并且是在新近快速启动的应用程序中为/ admin页面提供动力的工具箱。默认情况下,管理员将提供对在项目模型/__init__.py中导入的所有模型的自动生成的访问。如何创建TurboGears...
📅  最后修改于: 2020-10-19 03:34:42        🧑  作者: Mango
TurboGears应用程序是由变速箱工具箱的quickstart和setup-app选项创建的,默认情况下启用了授权和身份验证支持。根据bootstrap.py中分配的值来设置和初始化auth.py中声明的模型。以下模型在auth.py中声明-用户模型用户模型包含tg_user表的设计。该表由repose.who包使用。这个repose.who软件包是针对WSGI应用程序的功能强大且可扩展的身份...
📅  最后修改于: 2020-10-19 03:35:25        🧑  作者: Mango
TurboGears还支持MongoDB文档数据库。它使用目标文档映射器API Ming。 Ming的用法与SQLAlchemy非常相似。 Ming查询语言可以将基于SQLAlchemy的TurboGears项目移植到Ming。什么是PyMongoPyMongo是一个Python发行版,其中包含用于MongoDB的工具。 Ming扩展了PyMongo提供-声明式模型模式验证和转换模式演变纯InMe...
📅  最后修改于: 2020-10-19 03:35:48        🧑  作者: Mango
Gearbox工具箱包含scaffold命令,这对于快速创建TurboGears应用程序的新组件非常有用。由gearbox的quickstart命令生成的应用程序在model文件夹(model.py.template),templates文件夹(template.html.template)和controllers文件夹(controller.py.template)中具有骨架模板。这些“ .te...
📅  最后修改于: 2020-10-19 03:36:09        🧑  作者: Mango
TurboGears中通过三种方式将行为插入现有应用程序中。挂钩-这是一种机制,通过它可以定义事件,并在事件发出时通知注册的侦听器。控制器包装器-位于TurboGears和控制器之间,因此可以像装饰器一样扩展控制器。因此,它可以附加到任何第三方控制器应用程序。Application Wrapper-它类似于任何WSGI中间件,但仅在TurboGears上下文中工作。在本章的此处,我们将讨论如何在现...
📅  最后修改于: 2020-10-19 03:36:28        🧑  作者: Mango
TurboGears扩展由tgext。* package标识。 Gearbox工具箱提供了tgext命令来创建示例扩展。例如-此命令的其他可选参数是-–author-软件包作者的名称。–email-软件包作者的电子邮件。–licence-软件包使用的许可证。默认值为MIT。–description-软件包描述。–keywords-软件包关键字(默认值:turbogears2.extension)。...
📅  最后修改于: 2020-10-19 03:36:42        🧑  作者: Mango
如果您的扩展程序需要公开模型和控制器,则可能需要看一下Pluggable Applications,它们旨在创建可重用的Turbogears应用程序,可以将其插入其他应用程序以扩展其功能。使用以下gearbox命令创建可插入应用程序-这些可插拔的应用程序可以定义自己的-控制器-清除应用程序后将自动安装。模型-将在插入的应用程序内部和外部可用。助手-可以自动显示在应用程序模板的“ H”对象中。Boo...
📅  最后修改于: 2020-10-19 03:37:04        🧑  作者: Mango
REST表示RE表象小号大老贸易交接。 REST是基于Web标准的体系结构,并使用HTTP协议进行数据通信。它围绕资源展开,其中每个组件都是资源,并且使用HTTP标准方法通过公共接口访问资源。 REST由Roy Fielding于2000年首次提出。什么是RestControllerTurboGears中的RestController提供了一种机制来访问请求的方法,而不仅仅是URL。标准的HTTP...
📅  最后修改于: 2020-10-19 03:37:27        🧑  作者: Mango
为了从开发环境切换到成熟的生产环境,需要在真实的Web服务器上部署应用程序。根据您所拥有的,可以使用不同的选项来部署TurboGears Web应用程序。使用mod_wsgi的Apachemod_wsgi是Graham Dumpleton开发的Apache模块。它允许使用Apache Web服务器提供WSGI程序。首先,为您的平台安装Apache 2.X(如果尚未安装)。安装Apache后,请安装...