Grok:现在连穴居人都可用Zope 3了!
项目描述
Grok
什么是Grok?
Grok是一个基于Zope工具包技术的出色网络框架。
Grok使用组件架构,并建立在Zope的概念之上,如内容对象(模型)、视图和适配器。其简单性在于使用组件连接时的约定优于配置和合理的默认值。这意味着创建一个Grok网络应用不需要ZCML之类的配置语言或大量的重复工作。
您可以在我们的网站上了解更多关于Grok的信息。
谁在用Grok?
Grok是一个来自旧石器时代的友好穴居人。他有一根大棍子,用它来猎捕猛犸象。他也会用这根棍子砸碎他不喜欢的东西。
“ME GROK SMASH ZCML!”
获取Grok
开始使用Grok的最简单方法是安装grokproject包(例如,通过easy_install grokproject),然后通过以下方式调用grokproject脚本来创建一个新的项目区域
$ grokproject MyProject ... many lines of output here
这将创建一个位于MyProject中的项目区域以及下载和安装Grok。
您还可以从GitHub获取Grok
git clone https://github.com/zopefoundation/grok.git
然后按照INSTALL.rst中的说明操作。
Grok变更
5.0 (2024-01-29)
破坏性变更
删除对存档包的依赖
grokcore.xmlrpc
grokcore.rest
grokcore.json
grokui.admin(仅在grokwiki示例项目中使用)
修复
修复GrokWiki示例应用。
修复安装文档。
变更
将default.zcml从configure.zcml中分离出来,以便更容易排除。
将dependencies.zcml从configure.zcml中分离出来,以便更容易重用。
4.0 (2023-12-19)
添加对Python 3.11、3.12的支持。
更新生命周期事件的导入路径。
删除对Python 2.7、3.5、3.6的支持。
3.3 (2022-09-01)
添加对Python 3.9、3.10的支持。
修复弃用警告。
3.2 (2020-09-02)
修复DeprecationWarnings。
使用zopefoundation/meta/config来协调包结构。
删除对Python 3.4的支持,添加3.7 + 3.8。
删除一些向后兼容的导入。
3.1 (2018-05-09)
公开grok.ignore以允许在模块中不使用Grok。
3.0.1 (2018-01-17)
将grok.implements()的使用替换为全范围的@grok.implementer()指令。
3.0.0 (2018-01-16)
Python 3兼容性。
1.15 (2017-05-30)
宣传LazyAnnotation和LazyAnnotationProperty。
1.14.1 (2016-02-15)
更新测试。
1.14 (2015-06-11)
注意:有一些变更破坏了与旧版本的向后兼容性。
推广来自grokcore.site的install_on指令。
将ApplicationInitializedEvent替换为来自grokcore.site的ApplicationAddedEvent。
引入一个新的事件DatabaseCreatedEvent,当数据库创建时仅触发一次。对于现有应用程序升级到这个新版本,升级时仍会发送事件。
将grok.util.create_application替换为来自grokcore.site.util的版本。现在可以直接从grok导入。
1.13 (2015-06-04)
推广来自grokcore.content的ObjectEditedEvent。
1.12 (2014-10-20)
从grokcore.annotation添加grok.queryAnnotation()和grok.deleteAnnotation()。
1.11.3 (2013-04-03)
修复了调用application_url()的问题,使其在API定义了关键字参数时使用关键字参数。
1.11.2 (2013-04-03)
修复了brown paper bag发布中未包含所有资源的问题。再次。
1.11.1 (2013-04-03)
修复了brown paper bag发布中未包含所有资源的问题。
1.11 (2013-04-03)
更新grok.util.application_url(),使其与grokcore.view.util.url()正确工作。
1.10.3 (2012-05-10)
确保也能为布局感知表单组件检索正确的布局。
1.10.2 (2012-05-10)
将grokcore.layout.layout指令也导入到grok命名空间中。
1.10.1 (2012-05-02)
更新版本要求。
1.10 (2012-05-02)
将应用程序组件和local_utility指令从grok分离出来到grokcore.site。为应用程序留下向后兼容的导入。
将目录和索引组件从grok分离到grokcore.catalog。
将permissions()指令、Permission组件和Role组件从grok移动到grokcore.security。grok包导入这些组件,因此仍可以通过grok API访问它们。
1.9 (2011-09-06)
添加了用于补充Subscriptions和MultiSubscriptions组件的函数的导入:querySubscriptions()、queryMultiSubscriptions()、queryOrderedSubscriptions()和queryOrderedMultiSubscriptions()。
1.8 (2011-07-14)
合并grokcore.chameleon,并默认配置。
公开由grokcore.layout带来的Layout、Page、AddFormPage、EditFormPage、DisplayFormPage和FormPage组件。公开了在grok的viewish组件中通常找到的mixin应用程序_url()和flash()功能。
公开来自grokcore.layout的ExecptionPage、NotFoundPage和UnauthorizedPage组件。
公开来自grokcore.view的ContentProvider组件。
声明“index”名称为错误视图的默认视图名称。
1.7 (2011-05-26)
直接依赖于zope.app.wsgi并对其进行配置,以便注册有用的IResult适配器(用于(暂时)文件)。
导入grokcore.component.global_adapter。
1.6 (2011-04-04)
修复了依赖于较旧版本的zope.testbrowser的测试。
添加了grok.index.Value组件。
1.5 (2011-02-14)
添加了Subscription和MultiSubscription组件的导入。
1.4.3 (2011-02-08)
现在错误视图不再默认提供ISystemErrorView,修复了测试。
1.4.2 (2011-01-20)
应该将IApplication也列为grok API的一部分。
1.4.1 (2011-01-20)
Grok仍然应该在grok API中提供IApplication,即使它已经移动到grokcore.site.interfaces。
1.4 (2011-01-20)
为IException、INotFound和IUnauthorized错误定义错误视图基类:grok.ExceptionView、grok.NotFoundView、grok.UnauthorizedView。取消了zope.app.http和zope.app.exception的间接依赖。
将XMLRPC、REST组件移动到单独的包grokcore.xmlrpc和grokcore.rest中。因此,Grok定义的定制遍历组件也移动到grokcore.traverser。Grok-the-python-package更像是一个导入中心。
现在我们使用collective.recipe.sphinxbuilder而不是我们自己的早期黑客(去掉grokdocs子包)。Buildout现在生成grokdocs2html和grokdocs2pdf,它们应该做你所想的事情。
IApplication 接口和 getApplication() 方法已移动到 grokcore.site。
1.3 (2010-11-03)
IGrokSecurityView 接口已移动到 grokcore.view。
util 函数 make_checker 已移动到 grokcore.view。
基本发布者已移动到 grokcore.view,作为一个可选特性:security_publication。
JSON 组件和 grokker 现已移动到 grokcore.json。Grok 现在依赖于这个新的 grokore 包。
更新到最新版本的 martian 和 grokcore.component。
1.2.1 (2010-10-26)
Grok 教程示例项目已更新。
更新文档以准备 Grok 工具包 1.2 版本的发布。
使用 zc.buildout-1.5.2。
1.2 (2010-10-13)
无需进行任何更改。
1.2a (2010-10-07)
Grok 和 Grok 工具包现在使用 zc.buildout-1.5.1,这应该显著简化 Grok 的安装过程。现在可以使用系统 Python 安装 Grok。这已使 virtualenv 要求过时。
Grok 和 Grok 工具包将使用 ZTK-1.0 版本。请注意,尽管如此,一些包的版本已被覆盖,以包含错误修复版本。
各种依赖关系已更新。
从 grok.testing 中删除了 z3c.testsetup 特定的测试收集器。您仍然可以使用 z3c.testsetup 与 grok 一起使用,但必须在项目的 setup.py 中明确声明依赖关系。
grok.View 组件现在使用 grokcore.message 包的 flash 方法。
Grok 测试 zcml 现明确设置了默认视图名称(到 index.html)。这是添加的,因为我们不再依赖于像 zope.app.zcmlfiles 这样的包,这些包曾经负责该配置步骤。
角色标题和描述的国际化不再丢失。
在键重复的情况下,create_application 现在引发一个 KeyError,以匹配 zope.container 的行为。已相应地调整了测试。
向现有的 DuplicationError 添加了 KeyError 错误处理,以适应 zope.container 的更改。已相应地调整了测试。
1.1.1 (2010-05-30)
利用包括 Grok 依赖关系的几个错误修复版本在内的 groktoolkit 1.1.1,例如
zope.password,其中 SSHAPasswordManager 已修复。
zope.publisher,修复了长期存在的 XML-RPC “挂起”错误。
清理了 buildout 部分。
删除 zope.app.twisted。
1.1 (2010-05-18)
将 zope.pluggablauth 添加为依赖项。
1.1rc1 (2010-02-25)
现在使用 grokcore.content 作为基本内容类型:Model、Container 和 OrderedContainer。
取消了对 zope.app.authentication 的依赖,并改为依赖 zope.password。
取消了对已弃用的包 zope.app.error、zope.app.securitypolicy 和 zope.app.session 的依赖。
除了这些更改外,还进行了很多工作,以尽可能从 Grok 本身及其依赖关系中去掉对“较旧”的 zope.app.* 包的依赖。这项工作尚未完成。
1.1a2 (2009-12-22)
更新了 z3c.recipe.compattest 的版本,并使用它用于 bin/compattest,该工具测试 grok 及其所有依赖关系。
添加了 grok.getApplication(),类似于 grok.getSite(),检索“最近”封装的 grok.Application 对象。
使用 zope.container 而不是 zope.app.container。
使用 zope.catalog 而不是 zope.app.catalog。
使用 zope.intid 而不是 zope.app.intid。
使用 zope.keyreference 而不是 zope.app.keyreference。
1.1a1 (2009-11-17)
此版本依赖于 grokcore.view 1.13a1。
添加 ZTK 支持(目前为 ZTK 1.0dev)。
Grokdocs 现在使用 ZTK 锁定版本。
grok.permissions(),在 grok.Role 组件中使用,现在接受 grok.Permission 类的引用,而不仅仅是权限 ID。此行为现在与 grok.require() 指令的行为对称。
添加了一个工具函数 create_application,用于创建应用程序并在过程中触发正确的事件。
Grok 现在提供了一个以应用程序为中心的事件,用于完成 zope.lifecycle 的事件。此事件 ApplicationInitializedEvent,旨在在应用程序被添加到容器之后触发。在这一特定步骤,应用程序被认为可以安全地创建额外内容。
使用 grokcore.site 和 grokcore.annotation 代替内置实现。
更新引用以提及 zope.View。
更新引用以提及在 grok.require 和 grok.permissions 中对 grok.Role 的直接权限引用。
修复了文档中的一个错误,其中虚拟环境没有正确解释。
从 etc/site.zcml.in 中移除了 grok.View 权限声明,应该已经在 1.0b2 中移除。
1.0 (2009-10-07)
再次移除了 IReRaiseException 适配器的注册,以支持使用 grokcore.startup 的可配置 debug_application_factory WSGI 应用程序工厂函数。
使用更新版本的 simplejson 和 pytz。
1.0b2 (2009-09-17)
请参阅: upgrade_notes_1.0b2,了解升级到此版本的特殊说明。
恢复到旧版本的 grokui.admin,该版本未对 grok.View 权限以及 View/CodeView 分割进行任何更改,并且仍然具有从较新版本中删除的内省器。
grokcore.view、grokcore.viewlet、grokcore.formlib 和 Grok 本身都已更新,以撤销我们在 Grok 1.0a4 之后开发版本中暂时引入的 View/CodeView 分割。这意味着 grok.View 的行为与 Grok 1.0a4 相同。这里没有看到任何东西!
将默认权限更改为 zope.View 而不是 zope.Public。这意味着如果您正在升级现有的基于 Grok 的项目,则需要对您的 site.zcml 进行修改。有关更多信息,请参阅升级说明。
将使用的 zope.app.wsgi 版本(现在:3.4.2)升级以支持 zope.conf 文件中的 product-configs,并修复与 paster 相关的 paster.httpserver 相关的 bug。修复 https://bugs.launchpad.net/grok/+bug/220440
grok 样本应用程序的数据.fs 和日志文件的默认位置现在是 var/filestorage/ 和 var/log/,而不是 parts/data/ 和 parts/log/。
将使用的 z3c.testsetup 版本(现在:0.4)升级。修复 https://bugs.launchpad.net/grok/+bug/395125
将使用的 ZODB3 版本(现在:3.8.3)升级。修复 https://bugs.launchpad.net/grok/+bug/410703 和 https://bugs.launchpad.net/grok/+bug/424335
添加了 zope.publisher.interfaces.IReRaiseException 适配器用于 IUnauthorized 异常。关闭 https://bugs.launchpad.net/grok/+bug/332061
从 versions.cfg 中删除了 docutils 和 Pygment。两者都在 grokdocs 子包中锁定。关闭 https://bugs.launchpad.net/grok/+bug/340170
修正了 Content-type;JSON 视图现在报告 'application/json'。
更新 zope.publisher 依赖项到 3.4.8(修复 XMLRPC、PUT 中的 paster.httpserver 相关错误)
将 buildout 切换到基于 paster 的模板(类似于 grokproject 默认模板)https://bugs.launchpad.net/grok/+bug/307197
将解释器名称从 'python' 更改为 'grokpy'。
对升级和变更文档进行了重构,现在它们将通过 Sphinx 生成为单独的文件。
1.0b1 (2009-09-14)
此版本已发布,但并未真正完全完成。请参阅 1.0b2 的发布说明。
1.0a4 (2009-05-21)
将 grokcore.view 固定到 1.7。
从其实际定义而不是重新导入中导入 zope.app.container 接口。
JSON 视图现在报告 Content-type: text/json。请参阅 https://bugs.launchpad.net/bugs/362902
1.0a3 (2009-04-10)
将 grokui.admin 固定到 0.3.2。
将 grokcore.view 固定到 1.5。
将 grokcore.component 固定到 1.6。
1.0a2 (2009-04-08)
更新了文档和文档字符串。
将 grokui.admin 固定到 0.3。
将 grokcore.view 固定到 1.4。
将 versions.cfg 与最新的 KGS 版本同步,可在以下位置找到: http://download.zope.org/zope3.4/3.4.0/versions.cfg
在 grok 命名空间中公开 IBeforeTraverseEvent 以供导入。
1.0a1 (2009-01-08)
请参阅:upgrade_notes_1.0a1 了解升级到此版本的特别说明。
特性变更
引入了 grok.interfaces.IGrokSecurityView,这是一个标记接口,非 Grok 视图可以使用它来声明它们想要被 Grok 发布者像常规 Grok 视图一样处理。
公开了来自 grokcore.view 的 DirectoryResource 组件以及相应的 path 指令。
类似于层和皮肤的重组,已移除 grok.RESTProtocol 基类,改用可以在 REST 层接口上使用的 grok.restskin(name) 指令。引入了 IRESTLayer 基接口来定义 REST 层。
除了我们广泛的现有文档外,我们还开始为 Grok 源代码添加大量文档字符串,使其更容易理解。
错误修复
为了让“无操作”表单更容易工作,GrokForm 默认定义一个空的 actions 属性。
允许在 JSON 组件上使用 grok.layer() 指令。关闭 https://bugs.launchpad.net/grok/+bug/310558
关闭一个安全问题(也在 0.14.1 和其他版本中修复)。请参阅 http://grok.zope.org/blog/security-issue-in-grok-please-upgrade
重组
与视图相关的基本类和辅助函数已移动到 grokcore.viewlet 包中,Grok 现在依赖于此包。
0.14 (2008-09-29)
请参阅:upgrade_notes_0.14 了解升级到此版本的特别说明。
特性变更
Grok 现在官方支持 Python 2.5,并且仍然支持 Python 2.4。
合并了 zope 3.4c7 KGS(已知良好集合)中的版本: http://download.zope.org/zope3.4/versions-3.4.0c7.cfg 因此,我们现在使用最新的 Zope 3 版本为所有 Zope 软件包。
重组
已将 grok.admin 子包提取为单独的包 grokui.admin。要将 Grok 管理用户界面添加到您的环境中,请在您的包的 setup.py 中将 grokui.admin 添加到所需的包中。
用 grok.skin(name) 指令替换 grok.Skin 基类,该指令可用于层接口。还移除了 IGrokLayer 接口,改用从 grok 包公开 IBrowserRequest。
将与安全相关的指令和辅助函数移出到 grokcore.security 包。
将与视图相关的基本类、指令和 grokkers 移出到 grokcore.view 包。
将与表单相关的基本类和辅助函数移出到 grokcore.formlib 包。
错误修复
将 zope.deprecation.tests.warn 替换为 grok.testing.warn
使签名与 warnings.warn 相同
用于检查 *.pyc 和 *.pyo 文件。
当 zope.deprecation 被修复后,可以再次删除 warn() 函数。在 Python-2.5 下,这使得所有测试都通过。
0.13 (2008-06-23)
参见:升级说明_0.13了解升级到此版本的特殊说明。
重组
基本组件基类(Adapter、MultiAdapter、GlobalUtility),它们的解析器,以及许多基本指令已提取到一个可重用的 grokcore.component 包中。
将指令迁移到 Martian 的新指令实现。因此,许多从 grok.util 可用的辅助函数已被删除。现在,功能大多可以通过指令本身获得。
重构类解析器以利用 Martian 的新声明性方式从类中检索指令数据,以及 Martian 的新声明性方式编写解析器。有关更多信息,请参阅 升级说明_0.13。
特性变更
GrokTemplate 通过调用与模板关联的视图组件的 default_namespace() 来设置模板的命名空间。因此,ViewletManagers 和 Viewlet 现在可以将 viewletmanager 和 viewlet 命名空间推入模板。
更新了关于 grokproject 的教程部分,以适应最新的更改。
添加了 grok.traversable 指令,以便轻松遍历属性和方法。
grok.require() 可以直接引用 grok.Permission 的子类,而不是它们的 id。这可以避免在权限 id 中出现错误。权限组件 仍然 需要 grok.name() 指令来定义权限的 id。
向 url() 方法添加了一个可选参数 data,该参数接受一个字典,然后将其转换为查询字符串。请参阅
http://grok.zope.org/documentation/how-to/generate-urls-with-the-url-function-in-views/view
添加了 OrderedContainer 组件。
引入了基于 sphinx 的新文档引擎。有关详细信息,请参阅 grokdocs/README.txt。
合并了 3.4 KGS(已知良好集)的版本:http://download.zope.org/zope3.4/versions-3.4.0c1.cfg
我们现在使用最新的 Zope 3 版本为所有 Zope 软件包。有关更多信息,请参阅 升级说明_0.13。
添加了对基于 z3c.testsetup 的更简单测试设置的 support。这是一个比 grok.testing.register_all_tests() 更稳定、更强大的实现。有关详细信息,请参阅
http://grok.zope.org/documentation/how-to/tests-with-grok-testing
。
现在有一个新的 IContext 接口可用。如果您使您的类实现该接口,它(及其子类)将成为模块中的上下文候选者(如果 grok.context 不存在,则自动查找上下文)。这依赖于 grokcore.component 1.1 中引入的功能。
grok.Model 现在实现 grok.interfaces.IContext(从 grokcore.component 导入)。grok.Container 现在实现 grok.interfaces.IContainer。为这些接口设置了遍历器和默认视图,因此可以轻松创建作为模型或容器的新的实现。只需使用 grok.implements(IContainer) 或 grok.implements(IContext)。这对于想要实现新内容类的 Grok 扩展很有用。
错误修复
修复 https://bugs.launchpad.net/grok/+bug/226555:现在已移除 ViewletManager 和 Viewlet 上的 url() 方法,因为现在可以轻松访问已注册视图(管理器)的视图组件。
修复 https://bugs.launchpad.net/grok/+bug/231106:使用 viewletmanager.sort() 方法通过 util.sort_components() 对视图组件进行排序。
grok.REST 视图现在已正确设置 __parent__ 属性,可以正确地从父对象获取,例如,它用于安全策略获取本地权限。
修复 https://bugs.launchpad.net/grok/+bug/229677:缺少 zope.app.securitypolicy egg。现在 Grok 需要 zope.app.securitypolicy 3.4.6,并由 buildout 获取。
已从 grok.testing 中移除第一个测试设置黑客。
z3c.autoinclude 的 2.1 版本中包含的代码导致在某些平台上如果使用系统提供的 Python,则 Grok 无法启动(至少在某些版本的 Ubuntu 和 Debian 上)。现在包含 z3c.autoinclude 2.2 版本,应可修复此问题。此修复也已在 Grok 0.12 的发布后版本列表中进行。
将 zope.formlib 的端口修复为正确地将上下文适配到 FormField 的接口,而不是字段。
0.12 (2008-04-22)
请参阅:upgrade_notes_0.12 了解升级到此版本的特别说明。
特性变更
新版本需要新的 grokproject 版本,请进行以下操作:
$ easy_install -U grokproject
在 grok.testing 中添加了 testsetup 类以提高单元测试和功能测试的简单设置。
添加了对视图组件和视图管理器的支持,包括 grok.Viewlet 和 grok.ViewletManager。
添加了一个新的指令 grok.order(),可用于帮助排序组件。目前尚未使用,但打算用于视图组件支持。请注意,这意味着 Grok 现在需要 Martian 0.9.3 或更高版本。有关此指令的更多文档,请参阅 grok.interfaces。
现在依赖 z3c.autoinclude。这允许使用 <includeDependencies package="."/> 指令,它将自动加载项目 setup.py 中列出的依赖项所需的 ZCML。grokproject 的新版本会自动添加此行。升级 grokproject 以在新项目中使用此功能。
$ easy_install -U grokproject
以“-Base”结尾的类不再隐式被认为是基类。这些类需要显式添加 grok.baseclass() 指令。
请参阅 upgrade_notes_0.12 了解更多信息。
错误修复
不要将 JSON 组件的 publishTraverse 和 browserDefault 方法注册为视图。
以“_”开头的名称的方法不会被注册为 XMLRPC、REST 和 JSON 组件的视图。
使用配置操作来注册静态目录。
修复从 zope.app.securitypolicy 的导入。
Grok 在找到未关联的模板时不再抛出 GrokError,而是发出 UserWarning。
修复 https://bugs.launchpad.net/grok/+bug/161948:grok.testing.grok() 现在也加载 ZPT 模板工厂,以便需要配置具有 ZPT 模板的视图的单元测试继续工作。
更改了一些对 grok.grok 和 grok.grok_component 的剩余引用,到其在 grok.testing 中的正确等效项。
grok.testing.grok_component() 不能在纯 doctest 中使用。这需要 Martian 的一个错误修复(自 0.9.2 以来)。添加一个演示此问题的测试。
修复 https://bugs.launchpad.net/grok/+bug/162437:grok.Form 及其子类没有实现 IBrowserView。
修复 https://bugs.launchpad.net/grok/+bug/185414:grok introspector 对 zip egg 不起作用。
修复 https://bugs.launchpad.net/grok/+bug/125720:服务器控制表单默认行为是关闭,即使在输入管理员消息时也是如此。
修复 https://bugs.launchpad.net/grok/+bug/80403:修复模块名称与包名称相同的情况。现在至少模板模块可以与它们的包具有相同的名称。
同一名称下可以注册多个皮肤和REST协议,但实际上这是冲突的。现在当有人尝试这样做时会给出配置冲突错误。
使用traverse()方法或grok.Traverser覆盖遍历行为在(REST)PUT和DELETE时失败。当使用自定义遍历时,XML-RPC也失败了。
修复 https://bugs.launchpad.net/grok/+bug/187590,其中配置权限和角色注册的区分器不正确。
权限定义接收了错误的、过高的配置操作优先级(不要与grokker优先级混淆)。在某些情况下,这导致权限的设置时间晚于它们的使用时间。请使用低操作优先级来设置权限。
重组
从meta.py中提取共性。
不再使用zope.app.securitypolicy。zope.securitypolicy提供了Grok使用的所有安全策略功能。
0.11 (2007-11-08)
参阅:upgrade_notes_0.11了解升级到此版本的特别说明。
特性变更
集成皮肤和层:grok.layer、grok.IGrokLayer、grok.Skin。
Grok现在可以轻松地挂钩新的模板语言。请参阅doc/minitutorials/template-languages.txt。有关更多技术信息,请参阅下面的重构。
通过context/@@the_view/the_template访问模板宏现已弃用,因为现在每个实例都正确地获得了__name__属性,使用标准ZPT故事的context/@@the_view/macro/the_template。
现在有一个可以用于GlobalUtilities的grok.direct()指令,可以用来标记该类直接提供实用接口,无需实例化。
为了使用grok.Permission组件基类定义权限,已移除grok.define_permission。您现在应该继承此基类来定义权限。请参阅doc/minitutorials/permissions.txt。
添加了定义角色的组件基类grok.Role。
管理员UI现在显示并允许删除损坏的对象。
已移除使用具有特殊名称fields的内部类定义模型架构的支持。这已被放弃,转而采用Zope 3的常规方法在接口中定义架构,并在我们的Grok模型中实现。
集成REST支持。有关使用信息,请参阅doc/minitutorials/rest.txt。
错误修复
从版本要求中移除了zc.recipe.egg、zc.recipe.filestorage、zc.recipe.testrunner、zc.zope3recipes。
管理员UI现在显示模块中的接口。
handle...不再是特殊函数名称。
视图不再需要自定义的AbsoluteURL视图来确定它们的URL,因为每个实例现在都正确地获得了__name__属性。
buildout.cfg扩展了versions.cfg,以锁定依赖树的版本。请参阅http://grok.zope.org/releaseinfo/readme.html
重组
Grokkers现在会发出配置操作,就像ZCML指令处理程序一样。如果您定义了自定义grokkers,请参阅upgrade_notes_0.11以获取更多信息。
新的可插拔模板语言支持包括一些重构
GrokPageTemplate现在分为两个。BaseTemplate,所有模板都必须基于此,以及GrokTemplate,它还提供了一组方法,以方便集成模板语言。
现在所有基于GrokTemplate的对象都是grokked的,而不是为每种模板类型分别有单独的grokker。
视图现在是完全与模板语言无关的,这使得挂钩新的页面模板语言变得容易。
现在在实现对新模板语言的支持时,使用了新的接口(ITemplate和ITemplateFileFactory)。
更改了grok的功能测试设置方式。现在不再是每个测试案例都进行自己的测试设置,而是由ftesting层统一完成。这样可以避免当某些ftest会影响后来运行的ftest的环境时,出现的顺序问题。
0.10.2 (2007-10-24)
错误修复
从版本要求中移除了zc.recipe.egg、zc.recipe.filestorage、zc.recipe.testrunner、zc.zope3recipes。
需要zope.app.error = 3.5.1
0.10.1 (2007-10-10)
错误修复
buildout.cfg通过扩展versions.cfg来锁定依赖树的版本。这应该可以避免我们发布Grok、某些依赖变更,而Grok因此出现故障的情况。与此相关,我们还将发布一个新的grokproject版本,该版本默认使用此版本基础设施。
有关此更改的更多信息,请参阅: http://grok.zope.org/releaseinfo/readme.html
0.10 (2007-08-21)
特性变更
集成了管理用户界面。
使用Martian进行配置(http://pypi.python.org/pypi/martian)。
包含闪存消息基础设施。
调整Grok的依赖关系,以便grokproject可以在Windows上运行。
错误修复
在Martian中的一个修复,多个grok.Model或grok.Container类可能导致某个上下文被找到两次。
0.9系列(2007年早期至2007年7月)
特性变更
在此期间,Grok通过SVN以“持续发布”模式发布。
0.1系列(2006年9月至2007年早期)
特性变更
2006年9月创建了Grok。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
grok-5.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c111bc730dd624baad6de72be72413f2a57c7ca3e8607483e129591cb68f5d46 |
|
MD5 | 5e9959419ecef65c8a2cf674ff84ea82 |
|
BLAKE2b-256 | c2add1d74fe2fd9804ae46916bd53cf9923e364e0b04633f3d8f077e32694bbc |
grok-5.0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 80c98a778312990124c0ca4bda48041e70d0f5349886fbf9d794a6ac0d2c3789 |
|
MD5 | 7c298a8430ddca2c9182863d41760137 |
|
BLAKE2b-256 | 6c159b1261977fd845884623d37b6949e66beb80dfb49390715503103a6da5bb |