首页 > 其他分享 >go_test2

go_test2

时间:2024-10-25 15:36:26浏览次数:7  
标签:test2 string html func News go gin 模板

package main

import (
	"github.com/gin-gonic/gin"
	"html/template"
	"net/http"
	"time"
)

type Address struct {
	Mobile string
	Email  string
}

type News struct {
	Title   string
	Content string
}

func FormatUnixTime(unixtime int64) string {
	// 纳nano 纳米nanometer 纳秒nanosecond
	unixtimeObj := time.Unix(unixtime, 0) // 秒 纳秒 将int64类型的时间戳转为Time对象
	ret := unixtimeObj.Format("2006-01-02 15:04:05")
	return ret
}

func main() {
	r := gin.Default()

	// 8.自定义模板函数
	// r.SetFuncMap要在r.LoadHTMLGlob之前
	r.SetFuncMap(template.FuncMap{
		"FormatUnixTime": FormatUnixTime,
	})

	// 0.加载templates文件夹下所有子文件夹下的文件
	// **是一个通配符,表示匹配任意数量的子目录。* 表示匹配任意字符
	r.LoadHTMLGlob("templates/**/*")

	// 9.配置静态web目录:配置后可访问静态资源
	// relativePath翻译:相对路径
	// 第一个参数是网址,第二个是静态资源的根目录(映射目录)
	r.Static("/static", "./static")

	// 1.map嵌套结构体
	// 2.templates下的文件夹下的html如何引入,define-end定义模板名称
	// 3.将后台数据赋值给模板中变量
	r.GET("/home", func(c *gin.Context) {
		c.HTML(200, "default/home.html", gin.H{
			"name":     "张艺卓",
			"password": "123",
			"address": &Address{
				Mobile: "15239889618",
				Email:  "[email protected]",
			},
		})
	})

	// 4.模板中if-else-end
	/*
		eq如果 arg1 == arg2 则返回真
		ne如果 arg1!=arg2则返回真
		lt如果 arg1< arg2 则返回真
		le如果 arg1<= arg2则返回真
		gt如果arg1>arg2则返回真
		ge如果 arg1 >= arg2 则返回真
	*/
	r.GET("/admin/home", func(c *gin.Context) {
		c.HTML(200, "admin/home.html", map[string]interface{}{
			"name":     "卓卓",
			"password": "123",
			"score":    80,
		})
	})

	// 5.模板中循环数据,循环结构体,还有range-else-end。
	//  ,正常有值循环,当循环体为空时走else
	r.GET("/news", func(c *gin.Context) {
		c.HTML(http.StatusOK, "default/news.html", gin.H{
			"news": []News{
				News{
					"新闻1",
					"内容1",
				},
				News{
					"新闻2",
					"内容2",
				},
				News{
					"新闻3",
					"内容3",
				},
			},
			"slice": []int{},
		})

	})

	// 6.with-end解构结构体,赋值给.
	r.GET("/admin/news", func(c *gin.Context) {
		c.HTML(200, "admin/news.html", gin.H{
			"news": News{
				"标题1",
				"新闻1",
			},
		})

	})

	// 7.模板函数,自定义模板函数
	r.GET("/template_func", func(c *gin.Context) {
		var timeObj = time.Now()
		var unixtime = timeObj.Unix() // int64
		c.HTML(200, "default/template_func.html", gin.H{
			"slice":    []int{1, 2, 3, 4, 5},
			"string":   "张艺卓",
			"unixtime": unixtime,
			// 加载templates文件夹下所有子文件夹下的文件"string": "张艺卓",
		})
	})

	// 8.模板嵌套,静态文件
	r.GET("/test", func(c *gin.Context) {
		c.HTML(200, "default/test.html", gin.H{})
	})

	// 更改端口
	r.Run(":8081")

}

标签:test2,string,html,func,News,go,gin,模板
From: https://www.cnblogs.com/cloud-2-jane/p/18502640

相关文章

  • go_test1
    packagemainimport( "github.com/gin-gonic/gin" "net/http")typeArticlestruct{ Idint`json:"id"` Titlestring`json:"title"`}funcmain(){ //定义路由 r:=gin.Default() //返回字符串 r.GET("/&......
  • Django之CURD
    创建[app名称]模块pythonmanage.pystartapp[app名称]添加到项目settings.py的INSTALL_APPS中#mysite/settings.pyINSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','dj......
  • Go语言和C++在内存管理上的比较
    #Go语言和C++在内存管理上的比较在探讨Go语言和C++在内存管理上的比较时,我们可以从几个核心观点进行分析:自动内存管理、性能、安全性。在这些核心方面,Go语言通过其垃圾回收机制提供了相对于C++更为自动化的内存管理方式,这一点在开发大型应用时尤为重要。自动内存管理是Go语言......
  • golang slice相关常见的性能优化手段n3
    作者:https://github.com/apocelipes/p/18502063介绍一些开发中常用的slice关联的性能优化手段。鉴于golang编译器本身捉鸡的优化能力,优化的成本就得分摊在开发者自己的头上了。这篇文章会介绍的优化手段是下面这几样:创建slice时预分配内存操作slice前预分配内存slice表达式......
  • Go批量读取channel的数据
    packagemainimport("fmt""time")funcbatchProcessor(ch<-chanstring,batchSizeint,flushIntervaltime.Duration){varbatch[]stringtimer:=time.NewTimer(flushInterval)for{......
  • (开题报告)django+vue医疗设备管理系统论文+源码
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在医疗领域,设备管理至关重要。关于医疗设备管理系统的研究,现有研究主要以传统的管理模式为主,专门针对基于django+vue技术构建的医疗设备管......
  • Go语言的版本历史和未来趋势
    ###Go语言的版本历史和未来趋势在探讨Go语言的版本历史和未来趋势时,我们可以明确地看到其发展轨迹是由初始发布、持续改进、以及对未来的规划组成的。Go语言,自2009年推出以来,已经经历了多个版本的更新,每次更新都旨在提升性能、增加新功能、改进语言特性和提高安全性。特别是在......
  • Go语言的移动开发能力和工具
    ###Go语言的移动开发能力和工具在探讨Go语言的移动开发能力和工具时,可以明确地说,Go语言支持移动开发,并提供了一系列工具和库来支持这一过程。Go的移动开发能力主要体现在其对Android和iOS平台的应用开发支持、提供的gomobile工具、以及对跨平台开发的支持。特别地,gomobile工具......
  • golang slice相关常见的性能优化手段
    介绍一些开发中常用的slice关联的性能优化手段。鉴于golang编译器本身捉鸡的优化能力,优化的成本就得分摊在开发者自己的头上了。这篇文章会介绍的优化手段是下面这几样:创建slice时预分配内存操作slice前预分配内存slice表达式中合理设置cap值添加多个零值元素的优化循环展......
  • (开题报告)django+vue基于Web的网上书店销售系统论文+源码
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在当今数字化时代,电子商务蓬勃发展,网上书店作为其中的重要组成部分,具有广阔的市场前景。关于Web网上书店销售系统的研究,现有研究主要以大......