作为zope控制台脚本运行代码的基类

slc.zopescript的Python项目详细描述


https://secure.travis-ci.org/syslabcom/slc.zopescript.png

slc.zopescript

作为zope控制台脚本运行代码的基类

安装

要安装slc.zopescript,请添加slc.zopescript 为了你自己的蛋。

使用量

zopescript允许使用完整的zope从命令行运行代码 实例和请求可用。

控制台脚本

要创建控制台脚本,即可以从 终端,您可以从slc.zopescript.script.consolescript和 实现run()方法。zope应用程序将作为self.app和 作为self.portal的第一个plone站点。如果传递上下文路径,则 self.context将是此路径表示的对象;否则 self.context也将是门户。 将设置一个请求,以便您可以调用浏览器视图。 示例:

from my.egg import MailHandler
from slc.zopescript.script import ConsoleScript


class MailHandlerScript(ConsoleScript):
    def run(self):
        mailhandler_view = MailHandler(self.context, self.context.REQUEST)
        mailhandler_view()

mail_handler = MailHandlerScript()

在构建中,您可以生成控制台脚本,例如使用zc.recipe.e g g:

[mail_handler]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
scripts = mail_handler
arguments = '${instance:location}/etc/zope.conf','admin',server_url='http://localhost:8081/Plone',context_path='/Plone/news'

第一个参数必须是有效zope.conf文件的路径。第二次 参数是运行脚本的用户。可选的服务器URL应该是 网站外部可访问并允许您使用的URL 有意义的绝对url()调用。可选的上下文路径是 在脚本类中作为self.context可用的对象。

实例脚本

要创建实例脚本,即可以传递给zope的脚本 instance viainstance run my_script.py,您可以从 slc.zopescript.script.instancescript并实现run()方法。这个 行为类似于consolescript,只是它没有设置应用程序 对象,但希望在实例化时传入它。 示例:

from my.egg import MailHandler
from slc.zopescript.script import InstanceScript


class MailHandlerScript(InstanceScript):
    def run(self):
        mailhandler_view = MailHandler(self.context, self.context.REQUEST)
        mailhandler_view()


if "app" in locals():
    mail_handler = MailHandlerScript(app)
    mail_handler('admin', server_url='http://localhost:8081/Plone', context_path='/Plone/news')

将此代码保存为例如mail_handler.py并使用实例运行调用它 邮件处理程序.py。不需要构建配置。支持 最后一行中的调用与您在参数中传递的调用相同 控制台脚本的选项,但不能传递zope.conf文件。 :孤立:

变更日志

1.1.0(2019-01-28)

  • 添加了instancescript类,以便与instance run一起使用。 [莱因哈特]

1.0.4(2017-08-29)

  • 改进日志处理:

    • 仅在启动期间记录错误
    • 将信息记录到stdout
    • 将错误记录到stderr
    • 也记录到实例的event.log

    这使得只升级cronjobs中的错误成为可能,发送 正常的/dev/null日志记录和协议 instance.log

    [弗里西]

1.0.3(2016-05-19)

  • 以用户[reinhardt]的身份遍历到上下文
  • 允许按id[reinhardt]选择门户

1.0.2(2016-03-18)

  • 更好的清单[Reinhardt]

1.0.1(2016-03-18)

  • 允许传递上下文路径[reinhardt]
  • 更新了自述文件[Reinhardt]

1.0(2015-12-11)

  • 初次发布。 [莱因哈特]
orphan:

许可证(3条款BSD)

版权所有(c)2013,Syslab.com GmbH。保留所有权利。

以源和二进制形式重新分配和使用,有无 如果满足以下条件,则允许修改:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of Syslab.com GmbH. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

本软件由版权所有者和贡献者“按原样”提供。 以及任何明示或默示保证,包括但不限于 默示保证适销性和特定用途的保证 否认。无电动汽车对于任何 直接、间接、附带、特殊、示例或后续数据 (包括但不限于替代货物或服务的采购; 丧失使用、数据或利润;或营业中断) 任何责任理论,无论是合同责任、严格责任还是侵权责任 (包括疏忽或其他)因使用本文件而引起的 软件,即使被告知这种可能性或这种损害。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我能在这个程序中更好地使用内存吗?   为什么我的Java while循环迭代了一半   java IntelliJ IDEA不在构建时复制资源   socket仅在Java TCP服务器输出上检查客户端断开连接   java游戏物理摩擦   java片段onClick调用方法   symja数学分析器中无法识别java Abs[x]   java在使用泛型时创建二进制搜索树类的实例?   java在外键约束表上的添加和删除   语法java表达式的含义,如果有条件   java创建内联对象并作为参数传递   是否有相当于Redis排序集(zset)的Java数据结构   java找不到适合的方法(无参数)   音频文件操作给定字节帧的音量Java   Eclipse4不以JavaWebStart启动   java如何使用org在JSON对象中获取嵌套的键元素。json?   java与Jackson的反序列化:“org.codehaus.Jackson.map.JsonMappingException:无法反序列化[projectname]的实例。”   字符串的Java正则表达式   spring集成上的java检测缺火指令