beego支持的模板函数不是很多,有时候前端展现数据的时候,要对数据进行格式化,所以要用到自定义模板函数

比如我的前端模板上有时间和模板大小这2个数据,原始数据都是int的时间戳和byte单位的数据,我们要更友好的展示这些数据,就要对这些数据进行格式化

效果是这样的,可以看到时间和大小这2列已经是友好的显示方式

前端模板中代码是这样的

<td>
{{substr $v.ID 0 12}}
</td>
<td>
{{$v.RepoTags}}
</td> <td>
{{$v.Created | convertt}}
</td> <td>
{{$v.VirtualSize | convertm}} M
</td>

分别通过convertt和convertm这2个函数进行数据转换, 注意:必须在 beego.Run() 调用之前

package main

import (
_ "DockerAdmin/models"
_ "DockerAdmin/routers"
"fmt"
"github.com/astaxie/beego"
"time"
) func convertM(in int64) (out int64) {
out = in / 1000000
return
}
func convertT(in int64) (out string) {
tm := time.Unix(in, 0)
out = tm.Format("2006-01-02 03:04:05 PM")
return
}
func main() { beego.AddFuncMap("convertm", convertM)
beego.AddFuncMap("convertt", convertT)
beego.Run()
}

你可能会好奇,为什么格式字符串的时候,用的是2006-01-02这种格式。其实在Go 里,这些数字都是有特殊函义的,不是随便指定的数字,见下面列表:

月份 1,01,Jan,January

日  2,02,_2

时  3,03,15,PM,pm,AM,am

分  4,04

秒  5,05

年  06,2006

周几 Mon,Monday

时区时差表示 -07,-0700,Z0700,Z07:00,-07:00,MST

时区字母缩写 MST

当然beego还是有一些内置模板函数的,我用dateformat 没有成功,所以使用了自定义函数

  • dateformat实现了时间的格式化,返回字符串,使用方法 {{dateformat .Time “2006-01-02T15:04:05Z07:00”}}。
  • date实现了类似 PHP 的 date 函数,可以很方便的根据字符串返回时间,使用方法 {{date .T “Y-m-d H:i:s”}}。
  • compare实现了比较两个对象的比较,如果相同返回 true,否者 false,使用方法 {{compare .A .B}}。
  • substr实现了字符串的截取,支持中文截取的完美截取,使用方法 {{substr .Str 0 30}}。
  • html2str实现了把 html 转化为字符串,剔除一些 script、css 之类的元素,返回纯文本信息,使用方法 {{html2str .Htmlinfo}}。
  • str2html实现了把相应的字符串当作 HTML 来输出,不转义,使用方法 {{str2html .Strhtml}}。
  • htmlquote实现了基本的 html 字符转义,使用方法 {{htmlquote .quote}}。
  • htmlunquote实现了基本的反转移字符,使用方法 {{htmlunquote .unquote}}。
  • renderform根据 StructTag 直接生成对应的表单,使用方法 {{&struct | renderform}}。

beego 自定义模板函数的更多相关文章

  1. 【python】Django自定义模板函数

    参考:https://blog.csdn.net/wenyuanhai/article/details/73656761 注意: 1.自定义模板函数的路径必须为APP的templatetags下:ap ...

  2. JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾

    页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...

  3. Django自定义模板函数

    Django自定义模板函数 https://www.cnblogs.com/SunsetSunrise/p/7680491.html 在django中新建一个应用:listpage在listpage中 ...

  4. [Python自学] day-21 (1) (请求信息、html模板继承与导入、自定义模板函数、自定义分页)

    一.路由映射的参数 1.映射的一般使用 在app/urls.py中,我们定义URL与视图函数之间的映射: from django.contrib import admin from django.ur ...

  5. python---django中模板渲染(csrf令牌使用,自定义模板函数)

    使用终端,可以更方便的去实验,但是没有提示信息: 在项目目录下: D:\MyPython\day23\HelloWorld>python manage.py shell 开始实验: >&g ...

  6. [Beego] 内置的模板函数(不同格式的字符串和html的互转)

    在使用beego框架的时候,常常需要把不同形式的字符串转化为html,有时候为了安全考虑会将html转义,而有时候希望能显示html标签.在存储到db中后,再取出来的显示是原本的,即html标签不会生 ...

  7. beego——模板函数

    beego 支持用户定义模板函数,但是必须在 beego.Run() 调用之前,设置如下: func hello(in string)(out string){ out = in + "wo ...

  8. WordPress主题模板层次和常用模板函数

    首页: home.php index.php 文章页: single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos. ...

  9. 自定义模板语言之simple_tag和自定义过滤器

    扩展你的模板系统 一般是扩展模板的tag和filter两个功能.可以用来创建你自己的tag和filter功能库. 创建模板库 分为两步: 1. 首先决定由模板库在哪一个注册的app下放置,你可以放在一 ...

随机推荐

  1. 《DSP using MATLAB》示例Example6.6

    代码: h = [1, 2, 3, 2, 1]/9; [C, B, A] = dir2fs(h) 运行结果:

  2. 《DSP using MATLAB》示例Example7.6 Type-3 Linear-Phase FIR

    代码: h = [-4, 1, -1, -2, 5, 0, -5, 2, 1, -1, 4]; M = length(h); n = 0:M-1; [Hr, w, c, L] = Hr_Type3(h ...

  3. HTMLTestRunner显示用例打印内容

    我们知道默认的HTMLTestRunner运行时成功只会显示...,失败也只是显示E suite = unittest.TestLoader().loadTestsFromTestCase(MyTes ...

  4. c#开发的程序安装时动态指定windows服务名称

    转自:http://www.jb51.net/article/30549.htm 前段时间由于项目的需求,要在Windows里把同样的组件制作成多个不同名称的服务,这些服务完成类似的功能,仅需要修改业 ...

  5. RK3288 usb 摄像头旋转

    系统:Android 5.1 下面实现了摄像头 180 度旋转,旋转角度只需修改 orientation. diff --git a/hardware/rockchip/camera/CameraHa ...

  6. OPC UA (统一架构)的优势

    OPC UA OPC统一架构(OPC Unified Architecture)是OPC基金会(OPC Foundation)创建的新技术,更加安全.可靠.中性(与供应商无关),为制造现场到生产计划或 ...

  7. GOF23设计模式之中介者模式(mediator)

    一.中介者模式概述 如果一个系统中对象之间的联系呈现网状结构,对象之间存在大量多对多的关系,导致关系及其复杂,这时可以引入一个中介者对象,使得各个对象只跟中介者对象打交道,从而将复杂的网络结构化为星型 ...

  8. java代码--------随机输出100个随机数,要求每行10个数

    总结:不敢爱你么开口 package com.sads; ///实现随机输出100个数字,数字是0到9之间,每行输出10个 public class Wss { public static void ...

  9. Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  10. kafka 高可靠

    1.集群高可靠 ①搭建kafka集群(略) ②重点配置项(每个broker配置相同,只有broker.id不一样) broker.id=1     当前机器在集群中的唯一标识,和zookeeper的m ...