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如何反射地迭代数组字段?   java NamedQuery错误“具有给定标识符的多行:1”   java无法使用单独类中的计时器更新TextView   兼容性什么时候可以很快使用新的Java功能?   java二叉树路径和   java矩形的性能   java我想从同一个子表在主表中添加两个外键   java如何获取基于特定日期的所有数据?   java javafx、OO编程规则和写入变量类型的选择   java使用带枚举的switch语句   java异步任务生成运行时异常   java为什么JLabel不显示下划线字符?   java如何解析具有可变参数号的函数?   带有按钮的java JavaFX自定义列表单元格:未调用处理程序   java Modelmapper无法映射整个模型?   传递给持久化的java分离实体,包含LatLng列表