lua web快速开发指南(5) - 利用template库构建httpd模板引擎

本文介绍了使用Lua的template库构建HTTPD模板引擎,讲解了template的基础语法、转义字符和API,包括如何开始使用、将模板分解到多个文件中,并提供完整代码示例。
摘要由CSDN通过智能技术生成

介绍template

模板引擎是为了使用户界面与业务数据(内容)分离而产生的, 其本身并不是一种深奥的技术.

template模板引擎首先会将合法的模板编译为lua函数, 然后将模板文件和数据通过模板引擎生成一份HTML代码.

cf的admin库整使使用了template来构建服务端渲染页面, 并利用单页面+iframe模式快速完成lua后台开发.

1. template基础语法

在真正使用之前, 我们先来学习一下template常见的一些基本语法:

  • { { lua expression }} - lua expression是一段lua表达式; 作用为输出表达式的结果, 一些特殊符号将会被转义;

  • {* lua expression *} - lua expression是一段lua表达式; 作用为输出表达式的结果, 不会转义任何符号;

  • {% lua code %} - 执行一段lua代码, 如: {% for i = x, y do %} ... {% end %};

  • {# comments #}- comments仅作为注释, 不会包含在输出字符串内. 这段语法的作用类似lua内的----[[]];

  • {(template)} - 导入其它模板文件; 同时支持传参: {(file.html, { message = "Hello, World" })};

2. 转义字符
  • & 将会转义为 &
  • < 将会转义为 &lt;
  • > 将会转义为 &gt;
  • " 将会转义为 &quot;
  • ' 将会转义为 &#39;
  • / 将会转义为 &#47;
3. API
  • template.compile(html)

    参数html为字符串类型, 可以是:模板文件路径、

    此方法返回一个渲染函数, 调用这个函数并传入一个table(key-value)作为参数则可以在模板文件内直接引用.

  • template.precompile(view, path, strip)

    此方法用来将view预编译为lua的二进制代码块, strip是一个bool类型用来确定是否包含调试信息.

  • template.load(path)

    此方法用来重写template内部的加载行为; 默认的模板加载流程为: 检查缓存 -> 读取文件 -> 解析文件 -> 渲染 -> 输出;

    path字段为需要加载的文件路径或模板、html代码;

  • template.print(html)

    此方法用来重写template内部渲染后的输出行为; 默认的输出行为: print

  • template.caching(Enable)

    此方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值