狗林技术

  • 首页
  • 技术分享
    • PHP
    • Go
    • Linux
    • JavaScript
    • Vue
    • 其他

Menu

  • 首页
  • 技术分享
    • PHP
    • Go
    • Linux
    • JavaScript
    • Vue
    • 其他
  • 1970.01.01遇到Undefined constant "CURL_SSLVERSION_TLSv1_2"错误
  • 1970.01.01linux防火墙操作
  • 1970.01.01linux centos系统安装php的redis扩展
  • 1970.01.01Golang实现自定义JWT生成与验证
  • 1970.01.01php项目中Nginx文件解析漏洞
  • 1970.01.01Nginx配置跨域
更多
个人简介
个人简介


职业:PHP开发,Go开发

          前端开发

现居:浙江省-杭州市

Email:1047571953@qq.com

                               

热门文章

  • git的学习过程

    git的一些常用命令

  • Go文档

    Go http://www.topgoer.com gorm https://learnku.com/docs/gorm/v2/about-mirror-image/9754 gin https://www.kancloud.cn/lhj0702/sockstack_gin/1805355

  • tp5.1用GatewayWorker做一个简单的聊天室

    tp5.1用GatewayWorker做一个简单的聊天室 , 源码文件

  • TP5.1 查询数据库中上一条和下一条记录

    ->where("id", ">", $id)->order("id", "asc")->find();<br/> ​->where('id' , '<' , $id)->order("id", "desc")->find();

联系我

    zxl77l 微信号 1047571953@qq.com QQ邮箱 1047571953 QQ号

gin框架简单搭建一个MVC架构

分类:Go   作者:   - 发布于:2021/05/14   1052

Go.zip框架源码

实现了MVC架构 , 使用zap构建日志系统,gorm作为模型层。

main.go入口文件

package main

import (
   "github.com/gin-gonic/gin"
   "goweb/common"
   "goweb/route"
)

func main() {

   //根据输入字符串设置gin模式
   gin.SetMode(common.CONFIG["mod"])

   r := route.WebRun()

   // Run("里面不指定端口号默认为8080")
   r.Run(":" + common.CONFIG["httpport"])
}

Route.go路由注册函数

package route

import (
   "github.com/gin-contrib/sessions"
   "github.com/gin-contrib/sessions/cookie"
   "github.com/gin-gonic/gin"
   "goweb/common/logger"
   "goweb/common/middleware"
)

//路由注册函数
func WebRun() *gin.Engine {
   // 创建路由
   r := gin.Default()

   r.Delims("{[", "]}")
   //初始化日志配置参数
   logger.Init("", "./logs/app.log", 0, 0, 0)
   //注册日志记录中间件
   r.Use(logger.GinLogger(), logger.GinRecovery(true))

   // 创建基于cookie的存储引擎,参数是用于加密的密钥
   store := cookie.NewStore([]byte("gogogowebweb123mysession"))
   // 设置session中间件,参数mysession,指的是session的名字,也是cookie的名字
   // store是前面创建的存储引擎,我们可以替换成其他存储引擎
   r.Use(sessions.Sessions("mysession", store))
   r.Use(middleware.Cors())
   //注册前台路由组
   r = IndexRouter(r)
   //注册后台路由组
   r = AdminRouter(r)

   //定义静态资源路由
   r.Static("/static", "./static")
   //404文件
   r.NoRoute(func(c *gin.Context) {
      r.LoadHTMLGlob("app/error/views/**/*")
      c.HTML(404, "error/404.html", gin.H{
         "title": "页面404了",
      })
   })

   return r
}

可自定义注册全局中间件或方法中间件

//后台应用路由代码

package route

import (
   "github.com/gin-gonic/gin"
   admin "goweb/app/admin/controller"
   "goweb/app/admin/middleware"
)

//后台路由组
func AdminRouter(r *gin.Engine) *gin.Engine {

   //调用控制器结构体
   loginC := &admin.LoginController{}
   indexC := &admin.IndexController{}

   //注册后台路由
   AppAdmin := r.Group("/admin", middleware.AuthorityVerification(), func(ctx *gin.Context) {
      //定义模板文件路径
      r.LoadHTMLGlob("app/admin/views/**/*")
   })
   {
      IndexController := AppAdmin.Group("/index")
      {
         IndexController.GET("/index", indexC.Index)
         IndexController.GET("/console", indexC.Console)
      }
      AdminController := AppAdmin.Group("/login")
      {
         AdminController.GET("/index", loginC.Index)
         AdminController.POST("/login", loginC.Login)
      }
   }
   return r
}

.......

目录结构

QQ图片20210514210638.png


更多其它看源码...

上一篇 : Go文档

下一篇 : 没有下一篇了哦!

-------------本文结束感谢您的阅读-------------

首页 技术分享

湘ICP备2021006798号

Copyright © 2021 狗林技术. All Rights Reserved.

友情链接: 测试链接

大家都在搜

  • 张三
  • 李四
  • 王二

关注我

微信号