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嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束