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 自定义模板函数的更多相关文章
-
【python】Django自定义模板函数
参考:https://blog.csdn.net/wenyuanhai/article/details/73656761 注意: 1.自定义模板函数的路径必须为APP的templatetags下:ap ...
-
JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾
页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...
-
Django自定义模板函数
Django自定义模板函数 https://www.cnblogs.com/SunsetSunrise/p/7680491.html 在django中新建一个应用:listpage在listpage中 ...
-
[Python自学] day-21 (1) (请求信息、html模板继承与导入、自定义模板函数、自定义分页)
一.路由映射的参数 1.映射的一般使用 在app/urls.py中,我们定义URL与视图函数之间的映射: from django.contrib import admin from django.ur ...
-
python---django中模板渲染(csrf令牌使用,自定义模板函数)
使用终端,可以更方便的去实验,但是没有提示信息: 在项目目录下: D:\MyPython\day23\HelloWorld>python manage.py shell 开始实验: >&g ...
-
[Beego] 内置的模板函数(不同格式的字符串和html的互转)
在使用beego框架的时候,常常需要把不同形式的字符串转化为html,有时候为了安全考虑会将html转义,而有时候希望能显示html标签.在存储到db中后,再取出来的显示是原本的,即html标签不会生 ...
-
beego——模板函数
beego 支持用户定义模板函数,但是必须在 beego.Run() 调用之前,设置如下: func hello(in string)(out string){ out = in + "wo ...
-
WordPress主题模板层次和常用模板函数
首页: home.php index.php 文章页: single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos. ...
-
自定义模板语言之simple_tag和自定义过滤器
扩展你的模板系统 一般是扩展模板的tag和filter两个功能.可以用来创建你自己的tag和filter功能库. 创建模板库 分为两步: 1. 首先决定由模板库在哪一个注册的app下放置,你可以放在一 ...
随机推荐
-
(实用篇)php无限遍历目录
使用的函数有: isset()判断某个变量是否定义 chdir() 将当前目录改变为指定的目录. opendir() 打开目录. readdir()读取目录. getcwd().获取当前目录. 还用到 ...
-
使用jQuery Mobile实现新闻浏览器(3)
在本教程的前两篇文章中,笔者分别向大家介绍了使用jQuery Mobile框架如何去设计手机新闻浏览器,其中实现了一个WEB版本的新闻浏览器,在本教程的最后一篇中,将讲解如何将已实现的web版本的新闻 ...
-
What is SaaS?
SaaS, or Software as a Service, describes any cloud service where consumers are able to access softw ...
-
JDBC连接池-C池3P0连接
JDBC连接池-C3P0连接 c3p0连接池的学习英语好的看英文原版 c3p0 - JDBC3 Connection and Statement Pooling 使用c3p0连接池 三种方 ...
-
【转】DEM DTM DLG DRG DOM DSM
pasting DTM DLG DRG DOM DSM" title="[转载]DEM DTM DLG DRG DOM DSM" height="477&quo ...
-
Java的动手动脑(六)
日期:2018.11.8 星期四 博客期:022 --------------------------------------------------------------------------- ...
-
CF1066D Boxes Packing
传送门 这题为什么要用二分呢?/huaji 首先可以\(O(n)\)预处理出从某个物品\(i\)开始放,只放一个盒子,能放的最后物品的位置\(j\),只要用两个指针维护左右端点,每次移动一下左端点同时 ...
-
Py打开pkl文件【转载】
转自:https://blog.csdn.net/u010041824/article/details/78391683 1.打开带有中文的pkl文件或者其他字符的文件不能用默认的ascii格式打开, ...
-
原创:微信小程序页面跳转展示缓冲提示
1.在JS文件中,直接加上下面代码即可: //缓冲提醒 wx.showToast({ title: '加载中', icon: 'loading', duration: 400 })
-
offsetParent.scrollTop IE下一直报错,说“缺少对象”
<div style="position:fiexd; top:135px;_position: absolute; right: 0pt; _top:expression_r(off ...