持久猎豹模板

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库中移动。

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

推荐PyPI第三方库


热门话题
java如何使用DBFlow进行迁移?   java无法从socket读取数据   java在JButton上使用鼠标运动监听器?   元素的java ArrayList链接和get IndexOutOfBoundsException   javascript如何在Java脚本中从ajax调用解析JSON对象   从数据库中获取信息并将其写入JTable。错误:java。lang.IndexOutOfBoundsException:索引:2,大小:2   spring如何使用Java SpringBoot在FCM推送通知中向IOS发送图像通知   java jsoup:解析某个标记的数据,该标记恰好位于某个特定标记之后   java没有HashMap的等式依赖于EntrySet。钥匙套?   未按预期评估java Maven属性(osmavenplugin)   类Java向ArrayList添加了用户输入,需要用另一个ArrayList中的变量分隔   JavaJSF丰富:每行呈现的数据列表?   集合Java 8按属性区分   在Java中,是否可以(静态)导入构造函数或局部变量?   安卓在ubuntu 10上安装java时出错64位   java是否应该hashCode()只使用equals()中使用的不可变字段的子集?   java如何创建ConcurrentMultiMap