go语言template go语言入门

go模板文件引入js路径问题

Go语言模板文件可以引入js文件或css文件,但是在引入的过程中,需要注意以下几点:

太原ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

1. 引入的文件路径应该是相对路径,而不是绝对路径。

2. 在引入js文件时,需要使用{{ url }} 模板函数,用来拼接路径, 这样可以更好的兼容不同的路径。

3. 如果是在统一的文件夹中的js文件,最好使用{{ static }}模板函数,这样可以更好的节省路径长度。

4. 在引用js文件时,需要在页面底部,可以使用{{ template }}模板函数,这样可以保证js文件在页面加载完成之前就被加载。

总之,使用Go语言模板文件引入js文件,需要注意路径的相对性,并且使用模板函数来拼接路径,这样可以更好的兼容不同的路径,从而保证引用js文件的正确性。

go语言框架gin之集成swagger

1.先安装Go对应的开源Swagger相关的库

go get github.com/swaggo/swag/cmd/swag

go get github.com/swaggo/gin-swagger

go get github.com/swaggo/files

go get github.com/alecthomas/template

2.验证是否安装成功:swag -v

3.针对接口写入注解

// @Summary 获取多个标签

// @Tags 标签

// @Produce  json

// @Param name query string false "标签名称" maxlength(100)

// @Param state query int false "状态" Enums(0, 1) default(1)

// @Param page query int false "页码"

// @Param page_size query int false "每页数量"

// @Success 200 {object} model.TagSwagger "成功"

// @Failure 400 {object} errcode.Error "请求错误"

// @Failure 500 {object} errcode.Error "内部错误"

// @Router /api/v1/tags [get]

func (t Tag) List(c *gin.Context) {

}

// @Summary 新增标签

// @Tags 标签

// @Produce  json

// @Param name body string true "标签名称" minlength(3) maxlength(100)

// @Param state body int false "状态" Enums(0, 1) default(1)

// @Param created_by body string false "创建者" minlength(3) maxlength(100)

// @Success 200 {object} model.Tag "成功"

// @Failure 400 {object} errcode.Error "请求错误"

// @Failure 500 {object} errcode.Error "内部错误"

// @Router /api/v1/tags [post]

func (t Tag) Create(c *gin.Context) {

}

// @Summary 更新标签

// @Tags 标签

// @Produce  json

// @Param id path int true "标签ID"

// @Param name body string false "标签名称" minlength(3) maxlength(100)

// @Param state body int false "状态 (0为未删除、1为已删除)" Enums(0, 1) default(1)

// @Param modified_by body string true "修改者" minlength(3) maxlength(100)

// @Success 200 {array} model.Tag "成功"

// @Failure 400 {object} errcode.Error "请求错误"

// @Failure 500 {object} errcode.Error "内部错误"

// @Router /api/v1/tags/{id} [put]

func (t Tag) Update(c *gin.Context) {

}

4.针对整个项目进行注解,直接在main方法写入如下注解

//@title 项目名称

//@version 1.0

//@description 这里是描述

func main() {

5.生成执行 swag init

这时会在我项目的docs文件夹下面生成docs.go、swagger.json、swagger.yaml三个文件

6.要在routers中进行默认初始化和注册对应的路由:

r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

同时要引用 _"blog-service/docs" ,不然会报错

7.查看接口文档 :

8.ok,完成

81.go + vue实现web应用程序

前端框架越来越丰富,前后端分离已经是大多数软件团队采取的模式了。vue使用的场景也越来越多。

go本来使用template模板来进行前端的表现,现在可以用vue来分担很大一部分工作了。

通常直接使用go语言写后端,然后使用静态模板加载渲染前端,前端获取后端提供的数据是使用{{ }}符号,2个套在一起的花括号。这个也是vue使用的数据表现方式。

如果go+vue来协同工作的话,需要对vue进行一点设置。比如把{{ }}的方式改为[[ ]]的方式。

首先我们要知道,vue的使用,需要在页面中加载vue.js或vue.min.js

纯静态网页使用vue是这样的(给个html例子)

然后我们实现一个go的简单web服务和模板页面

这个go服务器通过端口 1989 展示服务器页面,提供了一个静态文件路径 htmlpage,我们把vue.js和index.html文件都放置在htmlpage路径里。

go服务器还用模板给前台页面提供了一个News结构的数据,数据包括:Title,Content,Author的值。

在index.html页面中,加载vue.js的时候需要带上静态路径 htmlpage

在 new 一个 vue 变量的时候,必须有一句来设置包裹数据的符号,我们这里设置这个符号为[[ ]]

同时,所有需要由 vue 渲染的数据,都写成类似这样的样子

在 go + vue 方式下的完整模板文件 index.html

此页面中{{ }}包裹的数据是由go从后端提供的数据( 例如:{{.Title}}),而[[ ]]包裹的数据,是vue渲染的数据。

只是把 Vue里的数据,改为由go后端提供即可。

好吧,作者已经在向月亮示爱了。呵呵 _

运行一下程序,看修改模板后的效果。

golang模板引擎动态读取sql

可以。golang模板引擎动态可以读取sql。text/template是Go语言标准库,实现数据驱动模板以生成文本输出,可以理解为一组文字按照特定格式动态嵌入另一组文字中。


文章名称:go语言template go语言入门
地址分享:http://abwzjs.com/article/dohgsss.html