goframe v2 模板引擎的用法

2023-12-31 03:44
文章标签 模板 用法 引擎 v2 goframe

本文主要是介绍goframe v2 模板引擎的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里用的goframe v2框架
提醒:下面的import 引入的控制器和api,根据自己实际项目路径

main函数

import ("context""github.com/gogf/gf/v2/net/ghttp""github.com/gzdzh/dzhgo/modules/dzhCms/controller/web""github.com/gogf/gf/v2/frame/g")func main() {s := g.Server()s.Group("/web", func(group *ghttp.RouterGroup) {group.Bind(new(web.CmsIndexController),)})s.Run()
}

中间件全局拦截路由

可以预处理一些事情,例如判断模板不存在的提示语

package middlewareimport ("context""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/os/gfile"
)func init() {s := g.Server()ctx := context.Background()// 普通静态文件if gfile.Exists("./template") {s.AddStaticPath("/template", "/template")} else {g.Log().Debug(ctx, "/template 不存在,创建一个")if err := gfile.Mkdir("./template"); err != nil {return}}func IndexMiddleware(r *ghttp.Request) {indexHtml := gfile.Exists("./template/index.html")var templateName stringif indexHtml {templateName = "index.html"r.SetParam("templateName", templateName)r.Middleware.Next()return} else {r.Response.Writefln("模板不存在")}}// 预处理首页模版s.BindMiddleware("/web/index", IndexMiddleware)}

接口

package v1import "github.com/gogf/gf/v2/frame/g"type IndexReq struct {g.Meta `path:"/index" method:"GET"`
}

控制器

package webimport ("context""github.com/gzdzh/dzhgo/dzhCore"v1 "github.com/gzdzh/dzhgo/modules/dzhCms/api/v1""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/os/gview"
)type CmsIndexController struct {}func (c *CmsIndexController) Index(ctx context.Context, req *v1.IndexReq) (res *dzhCore.BaseRes, err error) {view := gview.New()// 设置模板目录err = view.SetPath("template")if err != nil {return nil, err}view.Assigns(map[string]interface{}{"name":  "john","age":   18,"score": 100,})// 渲染模板content, err := view.Parse(ctx, "index.html")if err != nil {panic(err)}var r = g.RequestFromCtx(ctx)r.Response.Writefln(content)return
}

前端模板

根目录template的文件夹放模板文件,中间件那里已经映射到该目录了,如果没有该目录,会自动建一个

模板:/template/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>模板引擎渲染</title>
</head>
<body><p>Name: {{.name}}</p><p>Age:  {{.age}}</p><p>Score:{{.score}}</p></body>
</html>

浏览器打开 http://localhost:端口/web/index

在这里插入图片描述

这篇关于goframe v2 模板引擎的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/554850

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

关于@RequestParam的主要用法详解

《关于@RequestParam的主要用法详解》:本文主要介绍关于@RequestParam的主要用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 基本用法2. 默认值3. 可选参数4. 绑定到对象5. 绑定到集合或数组6. 绑定到 Map7. 处理复杂类

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

SQL中的CASE WHEN用法小结

《SQL中的CASEWHEN用法小结》文章详细介绍了SQL中的CASEWHEN函数及其用法,包括简单CASEWHEN和CASEWHEN条件表达式两种形式,并通过多个实际场景展示了如何使用CASEWH... 目录一、简单CASE WHEN函数:二、CASE WHEN条件表达式函数三、常用场景场景1:不同状态展

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.