Zope的ZPT页面模板怎么使用TAL处理XML/HTML

admin 百科 14
Zope的ZPT通过TAL属性(如tal:content、tal:replace、tal:repeat等)动态生成HTML/XML,不破坏文档结构,支持条件渲染、循环、变量定义及安全表达式,兼顾可预览性与服务端渲染。

Zope的ZPT页面模板怎么使用TAL处理XML/HTML-第1张图片-佛山资讯网

Zope 的 ZPT(Zope Page Templates)使用 TAL(Template Attribute Language)来动态生成 XML/HTML 内容,核心思想是不破坏原有文档结构,仅通过添加属性实现逻辑控制。它不是嵌入代码块,而是用 tal:xxx 属性“修饰”标准 HTML/XML 标签,让模板既可被浏览器直接打开预览,又能被服务端安全渲染。


基础:TAL 属性怎么写?

TAL 指令作为 XML/HTML 标签的普通属性出现,命名空间通常声明为 tal="http://xml.zope.org/namespaces/tal"(Zope 会自动识别,模板中常省略显式声明)。常见指令有:

    <li> tal:content —— 替换标签内容(如文本、属性值) <li> tal:replace —— 替换整个标签及其内容(含标签本身) <li> tal:attributes —— 动态设置或替换 HTML 属性(如 href, class) <li> tal:repeat —— 循环渲染子元素(类似 for 循环) <li> tal:condition —— 条件显示(布尔表达式为真时保留该元素) <li> tal:define —— 定义局部变量(供当前标签及子标签使用)

所有表达式都用 Python 表达式语法(在受限安全环境中执行),例如:python: request.get('id')string:Hello ${user/name}(配合 METAL 或 TALES 字符串表达式)。


渲染动态内容:content 和 replace

假设你有一个用户对象 user,含 nameemail 属性:

立即学习“前端免费学习笔记(深入)”;

<p tal:content="user/name">默认姓名</p>

登录后复制

→ 渲染为 <p>张三</p>(替换内容,保留 <p></p> 标签)

<span tal:replace="user/email">no-email@example.com</span>

登录后复制

→ 渲染为 zhangsan@example.com(整个 <span></span> 被替换,不留标签)

注意:tal:content 默认做 HTML 转义(防 XSS),如需原样输出 HTML,改用 structure:user/html_bio

标签: python html svg 浏览器 ai

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~