持久猎豹模板
ice.template的Python项目详细描述
============================
持久的猎豹模板
============================ < BR>
特点: < BR>
-猎豹模板引擎,
-文件系统中的源,
-存储在zodb中,
-可编辑的ttw,非技术用户的简单"$var"cheetah语法,
-能够在管理Web窗体中进行测试,
-能够从源重置。 < BR>
用例: < BR>
-邮件模板,
-可编辑的HTML片段和页面,
-其他。 < BR>< BR>
*这些测试需要导入* < BR>
>>gt;导入操作系统,tempfile
>;>;temp_dir=tempfile.mkdtemp() < BR>
>>>导入zope.component
>>>导入ice.template < BR>
>>gt;从zope.configuration导入xmlconfig
>>>context=xmlconfig.file('meta.zcml',ice.template) < BR>< BR>
创建模板
-- < BR>
1)使用cheetah语法"$"为变量创建源文件: < BR>
>;>;file=os.path.join(temp_dir,'welcome.tmpl') < BR>
>>gt;打开(文件'w')。写入(''
…亲爱的$用户名!
…欢迎使用$site\u name!
…'') < BR>
2)寄存器模板: < BR>
>>gt;context=xmlconfig.string('''
…&;lt;配置
…xmlns="http://namespaces.zope.org/zope"
…xmlns:ice="http://namespaces.zope.org/ice"
…i18n_domain="测试">;
…<;ice:模板
…name="欢迎"
…title="欢迎"
…storage="我的模板"
…来源="%s"
…变量="用户名"
…站点名称"
…/&;gt;
…<;配置>;
……''%文件,context=context) < BR>< BR>
创建存储
----- < BR>
需要创建(一个或多个)本地实用程序来存储模板。
注意,用于查找存储的实用程序名称: < BR>
>;>>模板=ice.template.templates() < BR>
>>gt;Zope.组件提供功能(
…模板,ice.template.itemplates,'我的模板') < BR>< BR> 用法
< BR>
使用模板: < BR>
>;>;数据={用户名':u'bob','站点名称':'www.gnu.org'} < BR>
>;>;模板。CompileTemplate("欢迎",数据)
'\n亲爱的鲍勃!\欢迎访问www.gnu.org!\n < BR>< BR>
管理模板
-- < BR>
查找为此存储注册的所有模板: < BR>
>;>>列表(templates.getAllTemplates())
[(u'welcome',<;ice.template.zcml.template对象位于…>;)] < BR>
获取变量名: < BR>
>;>>templates.getvariables('欢迎')
[用户名,站点名] < BR>
获取模板: < BR>
>>gt;模板.getTemplate('Welcome')
'\n亲爱的$用户名!\欢迎来到$site_name!\n < BR>
编辑模板: < BR>
>;>templates.settemplate('welcome',"$site_name for you,$user_name") < BR>
>;>;模板。CompileTemplate("欢迎",数据)
'www.gnu.org为您服务,鲍勃' < BR>
从源重置: < BR>
>;>>templates.resettemplate('欢迎')
'\n亲爱的$用户名!\欢迎来到$site_name!\n < BR>
>;>;模板。CompileTemplate("欢迎",数据)
'\n亲爱的鲍勃!\欢迎访问www.gnu.org!\n < BR>< BR>
使用属性
----- < BR>
使用特殊属性的另一种方法: < BR>
>;>;类pagelet(对象):
…template=ice.template.persistenttemplate('my-templates','welcome')
…def更新(自我):
…self.data={'用户名':'man','站点名':'www.python.com.ua'}
…定义渲染(自身):
…返回self.template(self.data) < BR>< BR>gt>>gt;视图=页面()
>;>;查看.update()
>;>;查看.render()
'\n亲爱的!\欢迎访问www.python.com.ua!\n < BR>< BR>
管理界面
---- < BR>
基于z3c.pagelet层的管理持久猎豹模板ui。 < BR>
管理模板有3个视图: < BR>
1)所有存储的列表。
2)存储中所有模板的列表。
3)编辑给定模板的表单,重新加载,测试,预览。 < BR>
实际上,您只需要做一件事:注册所有存储的列表
pagelet使用类ice.template.browser.storages.pagelet(参见示例
在ice.template.browser模块的configure.zcml中,因为(2)和(3)
已注册。例如,查看configure.zcml
在ice.template.tests模块中。 < BR> [谚] 变化/变化 [谚] < BR>< BR>
版本0.1.0(2009-05-04)
---- < BR>
-初始版本,此代码从common ice.app库中移动。
持久的猎豹模板
============================ < BR>
特点: < BR>
-猎豹模板引擎,
-文件系统中的源,
-存储在zodb中,
-可编辑的ttw,非技术用户的简单"$var"cheetah语法,
-能够在管理Web窗体中进行测试,
-能够从源重置。 < BR>
用例: < BR>
-邮件模板,
-可编辑的HTML片段和页面,
-其他。 < BR>< BR>
*这些测试需要导入* < BR>
>>gt;导入操作系统,tempfile
>;>;temp_dir=tempfile.mkdtemp() < BR>
>>>导入zope.component
>>>导入ice.template < BR>
>>gt;从zope.configuration导入xmlconfig
>>>context=xmlconfig.file('meta.zcml',ice.template) < BR>< BR>
创建模板
-- < BR>
1)使用cheetah语法"$"为变量创建源文件: < BR>
>;>;file=os.path.join(temp_dir,'welcome.tmpl') < BR>
>>gt;打开(文件'w')。写入(''
…亲爱的$用户名!
…欢迎使用$site\u name!
…'') < BR>
2)寄存器模板: < BR>
>>gt;context=xmlconfig.string('''
…&;lt;配置
…xmlns="http://namespaces.zope.org/zope"
…xmlns:ice="http://namespaces.zope.org/ice"
…i18n_domain="测试">;
…<;ice:模板
…name="欢迎"
…title="欢迎"
…storage="我的模板"
…来源="%s"
…变量="用户名"
…站点名称"
…/&;gt;
…<;配置>;
……''%文件,context=context) < BR>< BR>
创建存储
----- < BR>
需要创建(一个或多个)本地实用程序来存储模板。
注意,用于查找存储的实用程序名称: < BR>
>;>>模板=ice.template.templates() < BR>
>>gt;Zope.组件提供功能(
…模板,ice.template.itemplates,'我的模板') < BR>< BR> 用法
< BR>
使用模板: < BR>
>;>;数据={用户名':u'bob','站点名称':'www.gnu.org'} < BR>
>;>;模板。CompileTemplate("欢迎",数据)
'\n亲爱的鲍勃!\欢迎访问www.gnu.org!\n < BR>< BR>
管理模板
-- < BR>
查找为此存储注册的所有模板: < BR>
>;>>列表(templates.getAllTemplates())
[(u'welcome',<;ice.template.zcml.template对象位于…>;)] < BR>
获取变量名: < BR>
>;>>templates.getvariables('欢迎')
[用户名,站点名] < BR>
获取模板: < BR>
>>gt;模板.getTemplate('Welcome')
'\n亲爱的$用户名!\欢迎来到$site_name!\n < BR>
编辑模板: < BR>
>;>templates.settemplate('welcome',"$site_name for you,$user_name") < BR>
>;>;模板。CompileTemplate("欢迎",数据)
'www.gnu.org为您服务,鲍勃' < BR>
从源重置: < BR>
>;>>templates.resettemplate('欢迎')
'\n亲爱的$用户名!\欢迎来到$site_name!\n < BR>
>;>;模板。CompileTemplate("欢迎",数据)
'\n亲爱的鲍勃!\欢迎访问www.gnu.org!\n < BR>< BR>
使用属性
----- < BR>
使用特殊属性的另一种方法: < BR>
>;>;类pagelet(对象):
…template=ice.template.persistenttemplate('my-templates','welcome')
…def更新(自我):
…self.data={'用户名':'man','站点名':'www.python.com.ua'}
…定义渲染(自身):
…返回self.template(self.data) < BR>< BR>gt>>gt;视图=页面()
>;>;查看.update()
>;>;查看.render()
'\n亲爱的!\欢迎访问www.python.com.ua!\n < BR>< BR>
管理界面
---- < BR>
基于z3c.pagelet层的管理持久猎豹模板ui。 < BR>
管理模板有3个视图: < BR>
1)所有存储的列表。
2)存储中所有模板的列表。
3)编辑给定模板的表单,重新加载,测试,预览。 < BR>
实际上,您只需要做一件事:注册所有存储的列表
pagelet使用类ice.template.browser.storages.pagelet(参见示例
在ice.template.browser模块的configure.zcml中,因为(2)和(3)
已注册。例如,查看configure.zcml
在ice.template.tests模块中。 < BR> [谚] 变化/变化 [谚] < BR>< BR>
版本0.1.0(2009-05-04)
---- < BR>
-初始版本,此代码从common ice.app库中移动。