欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > goframe开发一个企业网站 模版界面4

goframe开发一个企业网站 模版界面4

2024/11/2 15:53:17 来源:https://blog.csdn.net/hzether/article/details/143422202  浏览:    关键词:goframe开发一个企业网站 模版界面4

###goframe已有了模板的功能

{{"string"}}     // 一般 string
{{`raw string`}} // 原始 string
{{'c'}}          // byte
{{print nil}}    // nil 也被支持
{{. | FuncA | FuncB | FuncC}}{{if .condition}}...
{{else}}{{if .condition2}}...{{end}}
{{end}}{{range $key, $value := .MapContent}}{{$key}}:{{$value}}
{{end}}{{include "模板文件名(需要带完整文件名后缀)" .}}{{/*
comment content
support new line
*/}}
删除空白符号
删除移除空格换行符# 使用{{-语法去除模板内容左侧的所有空白符号, 使用-}}去除模板内容右侧的所有空白符号。# 注意:-要紧挨{{}},同时与模板值之间需要使用空格分隔。{{- .Name -}}
{{- range $key, $value := .list}}"{{$value}}"
{{- end}}

模版的选择

在https://sc.chinaz.com/moban/找到喜欢的模板
前台模版:https://sc.chinaz.com/mobandemo.aspx?downloadid=19202411041264
后台模版:https://sc.chinaz.com/mobandemo.aspx?downloadid=1202491158443
本文是为了开发传统的界面,以利于SEO,而不是开发vue react,进行完全的前后端分离。

将静态文放到其需的地方。

在resource 的template存放到相关的目录,front 前端, admin 后台。
在这里插入图片描述
在开发过程中发现前端过于繁杂,又换了一个,大家以后可以去下载。

路由及controller的开发

在api/admin中加入login.go,来定义一下API接口定义,包含请求/响应结构体

// 定义包名为 admin,表示这是管理后台相关的 API
package adminimport ("context"  // 用于处理上下文"github.com/gogf/gf/v2/frame/g"  // GoFrame 框架的核心包
)// LoginReq 登录请求结构体
type LoginReq struct {// g.Meta 是 GoFrame 的路由元数据,使用结构体标签定义路由信息g.Meta `path:"/login"           // 路由路径为 /logintags:"Hello"            // Swagger 文档标签method:"get"            // HTTP 请求方法为 GETsummary:"You first hello api"` // API 描述
}
// LoginRes 登录响应结构体
type LoginRes struct {// 可以在这里添加需要返回的字段// 例如:// Token string `json:"token" dc:"登录令牌"`// UserInfo map[string]interface{} `json:"userInfo" dc:"用户信息"`
}// LogoutReq 登出请求结构体
type LogoutReq struct {g.Meta `path:"/logout"          // 路由路径为 /logouttags:"Hello"            // Swagger 文档标签method:"post"           // HTTP 请求方法为 POSTsummary:"Admin logout api"` // API 描述
}
// LogoutRes 登出响应结构体
type LogoutRes struct {// 可以在这里添加需要返回的字段// 例如:// Message string `json:"message" dc:"退出信息"`
}// ILogin 定义登录模块的接口
type ILogin interface {// Login 处理登录请求// ctx: 上下文,用于处理请求的整个生命周期// req: 登录请求参数// 返回值:// - res: 登录响应// - err: 错误信息Login(ctx context.Context, req *LoginReq) (res *LoginRes, err error)// Logout 处理登出请求// ctx: 上下文// req: 登出请求参数// 返回值:// - res: 登出响应// - err: 错误信息Logout(ctx context.Context, req *LogoutReq) (res *LogoutRes, err error)
}

以上代码为了注解修改了格式不能直接使用

package adminimport ("context""github.com/gogf/gf/v2/frame/g"
)type LoginReq struct {g.Meta `path:"/login" tags:"Hello" method:"get" summary:"You first hello api"`
}
type LoginRes struct {
}type LogoutReq struct {g.Meta `path:"/logout" tags:"Hello" method:"post" summary:"Admin logout api"`
}
type LogoutRes struct {
}type ILogin interface {Login(ctx context.Context, req *LoginReq) (res *LoginRes, err error)Logout(ctx context.Context, req *LogoutReq) (res *LogoutRes, err error)
}

的internal 中的admin加入一个controller ,如下代码

// Package admin 提供后台管理相关的控制器
// Package admin 提供后台管理相关的控制器
package adminimport ("context""web/api/admin""github.com/gogf/gf/v2/frame/g"
)//  实现登录控制器
type Controller struct{}// New 创建一个新的登录控制器实例
func New() admin.ILogin {return &Controller{}
}// Login 处理管理员登录请求
// ctx: 上下文
// req: 登录请求参数
// 返回登录响应和可能的错误
func (c *Controller) Login(ctx context.Context, req *admin.LoginReq) (res *admin.LoginRes, err error) {g.RequestFromCtx(ctx).Response.Writeln("Login !")return
}
func (c *Controller) Logout(ctx context.Context, req *admin.LogoutReq) (res *admin.LogoutRes, err error) {g.RequestFromCtx(ctx).Response.Writeln("Logout success!")return
}

在入口文件cmd.go注册路由

package cmdimport ("context""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/net/ghttp""github.com/gogf/gf/v2/os/gcmd""github.com/gogf/gf/v2/os/gctx""github.com/gogf/gf/v2/os/gsession""web/internal/controller/admin")var (Main = gcmd.Command{Name:  "main",Usage: "main",Brief: "start http server",Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {s := g.Server() // 创建服务器实例// 配置管理后台路由组s.Group("/admin", func(group *ghttp.RouterGroup) {// 注册响应处理中间件group.Middleware(ghttp.MiddlewareHandlerResponse)// 绑定后台控制器group.Bind(admin.New(), // 注册管理后台控制器)})s.Run() // 启动服务器return nil},}
)

运行可以看到效果!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com