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

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

使用方法

内置函数有两种输出方法,在view中,可以通过{{str2html .str}}或者{{.str | str2html}} 两种方法来输出。

相关函数

markdown

实现了把markdown文本转化为html信息,使用方法{{markdown .Content}}

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}}

assets_js

为 js 文件生成一个 <script> 标签. 使用方法 {{assets_js src}}

assets_css

为 css 文件生成一个 <link> 标签. 使用方法 {{assets_css src}}

自定义函数

官方的文档里也给了自定义模板函数。

func hello(in string)(out string){out = in + "world"return
}beego.AddFuncMap("hi",hello)

用法和以上一致,需要注意的是,beego.AddFuncMap需要在main.go里添加到beego.run之前。

更新
2018.05.04

现在最新版的beego已经去掉了markdown的支持,最新的模板函数如下(摘自官方源码):

    beegoTplFuncMap["dateformat"] = DateFormatbeegoTplFuncMap["date"] = DatebeegoTplFuncMap["compare"] = ComparebeegoTplFuncMap["compare_not"] = CompareNotbeegoTplFuncMap["not_nil"] = NotNilbeegoTplFuncMap["not_null"] = NotNilbeegoTplFuncMap["substr"] = SubstrbeegoTplFuncMap["html2str"] = HTML2strbeegoTplFuncMap["str2html"] = Str2htmlbeegoTplFuncMap["htmlquote"] = HtmlquotebeegoTplFuncMap["htmlunquote"] = HtmlunquotebeegoTplFuncMap["renderform"] = RenderFormbeegoTplFuncMap["assets_js"] = AssetsJsbeegoTplFuncMap["assets_css"] = AssetsCSSbeegoTplFuncMap["config"] = GetConfigbeegoTplFuncMap["map_get"] = MapGet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中isalpha的用法_python函数--isalpha()方法

原博文 2019-09-26 10:59 − isalpha()方法 描述&#xff1a;Python isalpha() 方法检测字符串是否只由字母组成。isalpha()方法语法&#xff1a;str.isalpha()参数&#xff1a;无。返回值&#xff1a;如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False…

stm32驱动ssd1306配置_STM32 OLED 屏幕 驱动芯片SSD1306 IIC代码

#include "oled.h"#include "stdlib.h"#include "oledfont.h"#include "delay.h"#include "usart.h"//SSD1306 OLED 驱动IC驱动代码//驱动方式:IIC//OLED的显存//存放格式如下.//[0]0 1 2 3 ... 127//[1]0 1 2 3 ... 127//[…

C#数据结构-单链表

理论基础&#xff1a; 链表是用一组任意的存储单元来存储线性表中的数据元素。 如果结点的引用域只存储该结点直接后继结点的存储地址&#xff0c;则该链表叫单链表(Singly Linked List)。 单链表由头引用H唯一确定。头引用指向单链表的第一个结点&#xff0c;也就是把单链表第…

[Golang] string类型和其他类型的值的互转

问题 由于在开发过程中遇到类型转换问题&#xff0c;比如在web中某个参数是以string存在的&#xff0c;这个时候需要转换成其他类型&#xff0c;这里官方的strconv包里有这几种转换方法。 实现 有两个函数可以实现类型的互转&#xff08;以int转string为例&#xff09; 1. For…

pandas 根据单号分类_由 “猫捉老鼠”游戏联想的用户分类问题

一、说在最前 用户识别&#xff0c;用户分类&#xff0c;精准营销…这是咱们业务人员常常念叨的话。底层逻辑为无论任何营销目的&#xff0c;在营销手段上&#xff0c;越针对某一细化群体&#xff0c;达成目的的概率也就会越大。那今天就来和大家说道说道用户识别/分类的一种方…

python解释器环境中、用于表示上一次_文学人类学概说_尔雅文学人类学概说答案第四小节课后作业答案...

【判断题】对零星分数的统计资料&#xff0c;经过统计分组整理后&#xff0c;仍然不能发现其特点和规律。【单选题】小明一家三口在食用自制的臭豆腐后&#xff0c;相继出现全身乏力、头晕、头痛&#xff0c;继而出现视力模糊、眼睑下垂、复视、吞咽困难等症状&#xff0c;他们…

[Golang]slice的用法以及和数组的区别

说明 slice是go的一个语言特性&#xff0c;其实有点类似于cpp的vector&#xff0c;可变长度&#xff0c;可以扩展空间。今天详细看了下&#xff0c;做下总结。 slice本质上是一个区间&#xff0c;原型是[]T,大致的实现是这样的&#xff1a; type slice struct {first *Tlen i…

IE Firefox通用DOM

要写出在各大主流浏览器上都兼容的JS代码&#xff0c;就要关注他们的区别&#xff0c;下是IE和FF综合考虑的通用DOM&#xff01; 1.document.formName.item("itemName") 问题说明:IE下,可以使用document.formName.item("itemName")或document.formName.ele…

arraylist从大到小排序_java基础算法之二叉树排序(递归)

一、二叉树介绍在计算机科学中&#xff0c;二叉树是每个结点最多有两个子树的树结构。二叉树由各种节点组成&#xff0c;如下图所示&#xff1a;每个节点都可以有左子节点&#xff0c;右子节点每一个节点都有一个值二叉树遍历&#xff1a;二叉树的遍历分左序&#xff0c;中序&a…

uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程

数字验证处于数字IC设计流程的前端&#xff0c;属于数字IC设计类岗位的一种。在IC设计中&#xff0c;数字验证所占的人数比重是非常多的&#xff0c;很多大公司&#xff0c;数字前端设计工程师与验证工程师的比例已经达到1&#xff1a;3。数字验证主要分成几种层次的验证&#…

[Golang]slice值传递存在的问题

说明 因为slice是指针类型&#xff0c;所以很多人会误以为其传递的是引用&#xff0c;所以在使用的过程中会出现一些非期望的实现。 问题 在使用append函数时&#xff0c;比如以下函数&#xff1a; func sliceModify(slice []int) {// slice[0] 88slice append(slice, 6) } …

IE8给你选择的理由

记得第一次用电脑时的情景&#xff0c;有点兴奋&#xff0c;双手不知道往哪里放&#xff0c;还有点局促和不安&#xff0c;怕不小心弄坏了它。也记得第一次上网&#xff0c;那个时候的上网就是用浏览器去访问在线聊天室&#xff0c;去和不认识的人去聊天&#xff0c;在网络信息…

流畅的python目录_流畅的python python 序列

内置序列 容器类型 list 、tuple和collections.deque这些序列能放入不同的类型的数据 扁平序列 str、byets、bytearray、memoryview(内存视图)和array.array(数组) 可变序列 list、bytearray、array.array、collections.deque和memoryview 不可变序列 tuple、str和bytes 可变序…

[Golang] 用interface{}实现泛型出现的问题

说明 在做一些实现的时候&#xff0c;碰到了一个棘手的问题&#xff0c;问题是这样的&#xff0c;向一个函数里传入slice和begin,end,返回slice[begin:end]。很明显这是一个实现泛型的问题&#xff0c;但是在做具体实现的时候出现问题。 问题 根据问题&#xff0c;很容易写下如…

dwf怎么合成一个_将ActionForm拼合成一条插入和更新语句

package chs.jhsyss.form;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Date;public class Waper {public Waper(){}/*** 本方法用于将FORM对象组装成一条INSERT语句* param obj ActionForm 以及其子对象* param for…

WebHelper类

成员一&#xff1a;获取上下文对象&#xff1a; public static HttpContext GetContext() { HttpContext context HttpContext.Current; if (context null) { throw new Exception("HttpContext not found"…

关联查询数据重复怎么办_在设计数据表的时候,是一个宽表好,还是多个维度表好?...

数据仓库每张表的搭建&#xff0c;主要依赖于这个表在整个数据仓库中的作用和相关意义。首先要清楚这个表的存在是为了解决那些问题&#xff0c;什么角色使用&#xff0c;怎么保证使用者尽可能好的体验解决问题。从以上所提到的角度去看待问题&#xff0c;拆解以下几点因素&…

[Beego] [bootstrap-paginator]实现分页功能

说明 在开发中分页功能几乎是必不可少的一项功能&#xff0c;使用beego框架开发时&#xff0c;就遇到了分页功能的需求。可能是之前版本并不支持&#xff0c;我发现有很多自己实现的分页功能的封装&#xff0c;在阅读了官方源码时&#xff0c;我发现了分页功能的封装&#xff0…

电磁波传播相位是否会变化_相位常数β与波数k是一回事吗?

1.相位常数β与波数k先明确一点&#xff1a;相位常数是指传输线&#xff0c;而波数是指平面波。1.1. 波数k wavenumber波数k&#xff1a;单位长度上有多少弧度&#xff1f;Jun.14.2019电磁波在材料中以光速 运动&#xff1a;材料的磁导率&#xff1a;材料的介电常数in free spa…

c#获取系统时间的方法

转:http://bbs.bc-cn.net/viewthread.php?tid238469 //今天DateTime.Now.Date.ToShortDateString();//昨天&#xff0c;就是今天的日期减一DateTime.Now.AddDays(-1).ToShortDateString();//明天&#xff0c;同理&#xff0c;加一DateTime.Now.AddDays(1).ToShortDateString()…