1

我有一个控制器页面模板和一个控制器 Python 脚本来处理该操作。很高兴我能够通过网络添加此表单和操作脚本,因此每次对代码进行轻微更改时,我都不必构建和重新启动 Plone 实例。问题是我的 python 脚本应该将内容对象列表构建为一个数组,然后通过将 JSON 数组作为请求正文发送到远程服务器来与另一台服务器共享这些对象。我有一个名为 arrayOfObjects 的数组,它应该看起来像“[{'param1':val1, 'param2':val2},{'param1':val3, 'param2':val4}]”。

import json

...other stuff...

sJSON = json.dumps( arrayOfObjects )

上面的代码可以在标准的 python 解释器中工作,但是 Plone 限制了许多模块用于在 ZMI 中管理的通过 web 的 Python 脚本。这是一个很棒的安全功能,但是我想继续通过网络开发脚本,并在完成后将其移动到我的附加产品中的文件系统存储中。我听说 AccessControl 包的 allow_module 功能应该启用导入,但听起来好像您仍然可能必须将它放在文件系统上。有什么方法可以同时通过网络编辑 Python 脚本和对我正在构建的功能至关重要的 JSON 模块?提前感谢您提供任何信息!

PS- 权限不足屏幕是我在导入 json 模块时看到的(预期行为 - 没有错误)

4

1 回答 1

4

某处,在常规 python 代码中,添加以下内容:

from AccessControl import allow_module
allow_module('json')

将模块列入白名单。是的,出于明显的安全原因,这必须从基于文件系统的 Python 运行。

于 2013-08-22T19:52:05.373 回答