Dolmen内容类型扩展:图像

menhir.contenttype.image的Python项目详细描述


menhir.contenttype.image提供以图像为中心的内容类型 对于基于grok的应用程序。

模式

menhir.contenttype.image图像内容提供自定义架构, 从dolmen.app.content

扩展idescriptiveschema接口
>>> from dolmen.app.content import IDescriptiveSchema
>>> from menhir.contenttype.image import IImage

>>> IImage.isOrExtends(IDescriptiveSchema)
True

iImage接口描述了图像字段,即存储 已上载图像数据。该字段来自dolmen.file

>>> for attr, doc in IImage.namesAndDescriptions():
...   print attr, ':', doc
image : <dolmen.file.field.ImageField object at ...>

工厂

menhir.contenttype.image图像内容使用zodb blob 存储数据。factory类的图像属性,图像, 是来自dolmen.blob

的blob属性
>>> from menhir.contenttype.image import Image
>>> Image.image
<dolmen.blob.property.BlobProperty object at ...>

实例相当简单:

>>> import os.path
>>> path = os.path.join(os.path.dirname(__file__), 'image.png')

>>> imagefile = open(path)
>>> image = Image(title=u"My Image", image=imagefile)
>>> imagefile.close()

工厂受公共dolmen.app.security权限保护:

>>> from dolmen.content import require
>>> print require.bind().get(image)
dolmen.content.Add

图标

由于^{tt3},内容注册了一个图标$ 套餐:

>>> from zope.component import getMultiAdapter
>>> from zope.publisher.browser import TestRequest

>>> request = TestRequest()
>>> icon = getMultiAdapter((image, request), name="icon")
>>> print icon
<zope.browserresource.icon.IconView object at ...>

视图

内容注册自己的索引视图。它显示图像和 下载链接。为了能够显示内容,我们需要它持久化 在可定位树中,因为链接依赖于url:

>>> from zope.component.hooks import getSite
>>> site = getSite()
>>> site['image'] = image

我们现在可以召唤并渲染这个视图。景色是 dolmen.app.layout

>>> from dolmen.app.layout import Page
>>> index = getMultiAdapter((image, request), name="index")
>>> isinstance(index, Page)
True

>>> index.update()
>>> print index.content()
<h1>My Image</h1>
<div class="content">
  <p class="download">
    <a href="http://127.0.0.1/image/++download++image"
       title="Download">Download</a>
    &mdash;
    <span>1 KB</span>
  </p>
  <div class="image">
    <a href="http://127.0.0.1/image/++thumbnail++image.large"
       class="image-link" title="My Image">
      <img src="http://127.0.0.1/image/++thumbnail++image.preview" />
    </a>
  </div>
</div>

更改日志

0.4(2011-02-14)

  • 模式现在继承自 dolmen.app.content,不再来自 dolmen.content。这将添加一个描述属性以及 已经存在的<引用>标题>引用。

0.3(2011-01-13)

  • 由于fanstatic,资源现在已注册并声明。

0.2(2010-07-27)

  • 包装更正。

0.1(2010-07-21)

  • 初始版本

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

推荐PyPI第三方库


热门话题
用于切换状态结果的枚举的java输入   检测*NIX上打开的端口时出现java问题   java捕获和保存屏幕截图   java SLF4JLogback:基于日志级别的多模式   Java从字符串中删除动态子字符串   在spring引导中contextLoads测试时运行java Liquibase   基于规则集的任意嵌套POJO的java任意就地转换   java如何做,边做边循环这段代码?   java是什么导致jmh测量中的错误?   java Spring RabbitTemplate执行方法可见性   java jms创建连接http超时weblogic   java如何在JMapViewer中的两点之间放置像箭头一样的图像   在我的形状计算器Java程序中使用带有Switch/Case语句的循环   字符串如何在Java中比较字符和数字