Dolmen内容类型扩展:图像
项目描述
menhir.contenttype.image 为基于 Grok 的 Dolmen 应用程序提供以图像为中心的内容类型。
模式
menhir.contenttype.image 的 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 的 Image 内容使用ZODB Blob存储数据。工厂类 Image 的 image 属性是来自 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
图标
内容通过 dolmen.app.content 包注册了一个图标
>>> 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 的 Page
>>> 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> — <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 中的 IDescriptiveSchema 继承,而不是从 dolmen.content 中的 IBaseContent 继承。这增加了一个 description 属性,以及已经存在的 title。
0.3 (2011-01-13)
资源现在通过 fanstatic 进行注册和声明。
0.2 (2010-07-27)
包装修正。
0.1 (2010-07-21)
初始发布
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。
源分发
menhir.contenttype.image-0.4.tar.gz (6.9 kB 查看哈希值)
关闭
menhir.contenttype.image-0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28c040d6a010ccd7505c64520de02f816d73a6b77a7b7ebe2fe1afcbdacb781b |
|
MD5 | 0d9e5d718470c6db5f9569e0650ac457 |
|
BLAKE2b-256 | cc30a34bca9e585e1c9e08ad1963b48ac7b5cc1d26f6fa5ada068dcd95a68331 |