问题标签 [zope.component]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何让“cast like”适应纯 zope.interface?
我想获得“C++ cast like”改编以使用来自zope.interface
. 在我的真实用例中,我使用了一个注册表,Pyramid
但它派生自zope.interface.registry.Components
,根据 changes.txt 的介绍,它能够在不依赖zope.components
. 以下示例是完整且自包含的:
我想知道为什么registry.getAdapter
已经返回了适应的对象,这B
在我的例子中是一个实例。我本来希望回到课堂B
上,但也许我对适配器一词的理解是错误的。由于这一行有效,而且显然适配代码已正确注册,我也希望最后一行有效。但它失败并出现如下错误:
TypeError: ('Could not adapt', <....A object at 0x4d1c3d0>, < InterfaceClass ....IB>)
知道如何让它工作吗?
python - 如何让 zope 加载我的 ZCML?
当我编写一些实用程序时,注册它然后用getUtility
它查询就可以了:
现在,据我了解,我可以将实用程序的注册移至configure.zcml
,如下所示:
但我不知道如何让全局站点管理员阅读这个 zcml。
python - 为什么我的 MultiAdapter 无法注册?
我目前正在尝试使用 ZCA,但遇到了一些麻烦。下面的脚本定义了一个IFuncttion
接口,用于创建可以链接的函数对象(即monads)。
在此示例中,我试图创建一个简单的 writer monad 作为适配器,但getMultiAdapter
正在引发ComponentLookupError
. 为什么是这样?
plone - 在 Plone 4.3 上发送响应后操作 cookie
我需要更改存储在 cookie 中的数据,或者在用户访问 Plone URL 时设置新的 cookie。
官方的 Plone 文档包含我在修改 HTTP 响应 cookie部分中所需要的内容。
不幸的是,它似乎是一个已弃用的文档,因为它需要plone.postpublicationhook包,而不是 Plone 附带的,仅适用于 Zope < 2.12;文档说:“这个包是为了向后兼容而提供的。新代码应该直接使用 Zope 2.12 中引入的发布事件。 ”
当我使用 Plone 4.3/Zope 2.13 时,我想知道是否有办法不包含这个已弃用的包。
我正在尝试使用这些ZPublisher.interfaces
事件但没有成功。
我正在尝试这样的 ZCML 注册:
但是该函数永远不会被调用。
我找到的一些示例/代码(但仍然无法达到我的范围):
python - 使用 ZCA 和 SQLAlchemy 创建可重用组件
实际上,我正在使用 python 3.4 为桌面设计一个大型应用程序。我选择了端口和适配器架构,即六边形架构。它的主要目的是使用可重用的组件。
为了组织代码并制定一些规则,我们将使用 Zope 组件架构 (ZCA)
所以要做一些 POC,我正在创建数据库组件。但是使用 ORM 的事实阻止了我。我的意思是我设计了一些看起来像的数据库组件:
-IDatabase -IDatabaseConfig -IEntity -IKey -IReader -IWriter ... 和实现。
SQLAlchemy 管理很多东西,我不知道如何使我的组件可重用。
我找到了这段代码:
但我猜这段代码真的很难与 SQLAlchemy 耦合。那么我应该在我的架构中使用什么方法呢?
由于实体必须是应用程序的中心(域层),如果我需要更改我的数据库组件并且不使用 SQLAlchemy,那么该解决方案会出现问题吗?
我愿意接受所有建议。
pyramid - Pyramid 中的 Plone/Zope 样式视图覆盖
我有
- 定义视图的附加产品(“my_view”)
- 使用此插件的应用程序
views.py
在应用程序启动期间,配置器会扫描这两个应用程序。
我的应用程序需要有一个更具体的版本my_view
,因为插件提供的 genericmy_view
不知道应用程序特定的细节。什么是一个好的金字塔模式这样做,这样金字塔配置器就不会发生冲突?我可以注册一个具有相同名称和上下文更具体IRequest
或类似的视图吗?
security - 将 Zope2 浏览器资源目录权限更改为仅允许经过身份验证的用户
browser:resourceDirectory
我在 Zope2 中有一个设置,我有: permission="zope2.Public"
.
为了只允许“经过身份验证的”用户访问资源目录,应该进行哪些更改?