Zope 2布局系统

infrae.layout的Python项目详细描述


infrae.layout定义了一种可以重用 Zope 2中已有的已定义布局。它类似于megrok.layout, 以同样的方式工作,并添加一些内容。

API

您可以定义一个layout将由page使用。a是 同样的观点和行为。页面将查找布局并将 在里面渲染。

pagelayout都可以通过render 方法,或通过关联的模板,与grok视图完全相同。

通过调整请求和内容可以找到layout: 您可以为皮肤注册布局,然后为特定内容注册布局。

如果这还不够,页面可以使用grok指令 layout直接指定要使用的布局类型。当 定义布局时,可以使用相同的指令来声明 类型所属的布局。例如,如果你有皮肤 ICorpSkin

from infae.layout import layout, Layout, ILayout, Page
from five import grok

from corp.skin import ICorpSkin

grok.skin(ICorpSkin)


class ViewLayout(Layout):

   def render(self):
       return u'View %s' % self.view.content()

class Index(Page):

   def render(self):
       return self.context.title()

现在,如果在相同的内容上,您需要一个版本布局,例如:

class IEditionLayout(ILayout)
    """Layout to edit content
    """

class EditionLayout(Layout):
    layout(IEditionLayout)

    def render(self):
        return u'Edit %s' % self.view.content()

class Edit(Page):
   layout(IEditionLayout)

   def render(self):
        return self.context.title()
如果上述MeCeCon对你的应用不够灵活,你可以 在请求和内容上编写一个适配器 ILayoutFactory。 适配器将允许您对逻辑进行编码,以选择所需的任何布局。

更改

1.0(2010/07/16)

  • 初次发布。

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

推荐PyPI第三方库


热门话题
javapojo到org。布森。文件,反之亦然   java突然增加了G1老一代的承诺内存,减少了Eden的大小   java为什么对多个RXJava观察对象不执行并行执行?   java中的枚举是故障安全的吗?如果是,怎么做?   java是等待字符串变为相等的正确方法   java CodeAbbey挑战14个数据输入问题?   在java中的任意位置插入。util。列表   java替换html中的值   java需要帮助破译一个小堆栈跟踪:我使用的是哪种WS?   java Guice依赖项注入器空指针异常   java如何在3D引擎中实现视图剪裁平面?   JavaEclipseRCP:操作与命令需要更新   java如何使用XPAGES DesignerFacesServlet显示泰语字母(以及另一个亚洲/阿拉伯字母)   java装饰器模式问题   java我对空间复杂性的分析正确吗?   不显示java OpenGL ES 2纹理   使用java问题中的wc命令计算行数   java为什么空指针异常取决于条件的顺序?   Java日期在同一天或同一个月   java在使用lambda表达式时在变量中存储一些值