| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
8年前发布

ThinkGo 是一款 Go 语言编写的 web 快速开发框架

ThinkGo Web Framework

ThinkGo 是一款 Go 语言编写的 web 快速开发框架

ThinkGo 是一款 Go 语言编写的 web 快速开发框架。它基于开源框架 Gin 进行二次开发,旨在实现一种类 ThinkPHP 的高可用、高效率的 web 框架。在此感谢 Ginhttprouter。它最显著的特点是模块、控制器、操作三段式的标准 MVC 架构,且模块与插件的目录结构完全一致,令开发变得非常简单灵活。

  • 官方QQ群:Go-Web 编程 42730308

ThinkGo 是一款 Go 语言编写的 web 快速开发框架

ThinkGo 是一款 Go 语言编写的 web 快速开发框架

目录结构

  ├─main.go 主文件  │   ├─core 框架目录  ├─application 应用模块目录  │  ├─example.go 模块定义文件  │  ├─example 模块目录  │  │  ├─conf 配置文件目录  │  │  ├─common 公共文件目录  │  │  ├─controller 控制器目录  │  │  ├─model 模型目录  │  │  └─view 视图文件目录  │  │      └─default 主题文件目录  │  │          ├─__public__ 资源文件目录  │  │          └─xxx 控制器模板目录  │  │  │  ├─example2.go 插件定义文件  │  ├─example2 插件目录  │  │  ├─conf 配置文件目录  │  │  ├─common 公共文件目录  │  │  ├─controller 控制器目录  │  │  ├─model 模型目录  │  │  └─view 视图文件目录  │  │      └─default 主题文件目录  │  │          ├─__public__ 资源文件目录  │  │          └─xxx 控制器模板目录  │  │  │  └─... 扩展的可装卸功能模块或插件  │  ├─common 公共文件目录  │  ├─deploy 部署文件目录  │  └─utils 工具集  │  ├─model 模型目录  ├─conf 配置文件目录  └─uploads 上传根目录

安装

  go get github.com/henrylee2cn/thinkgo
  解压 application.zip 至项目根目录(示例)

使用说明

main.go

  package main    import (      _ "github.com/henrylee2cn/thinkgo/application"      "github.com/henrylee2cn/thinkgo/core"  )    func main() {      core.ThinkGoDefault().      // 以下为可选设置      TemplateDelims("{{{","}}}").      TemplateSuffex(".html").      TemplateFuncs(map[string]interface{}).      Use(middleware1,middleware2,middleware3,...).      // 启动服务      Run(":8080")  }

定义模块/插件

  package application    import (      "github.com/henrylee2cn/thinkgo/application/admin/conf"      . "github.com/henrylee2cn/thinkgo/application/admin/controller"      . "github.com/henrylee2cn/thinkgo/core"  )    func init() {      ModulePrepare(&Module{      // 定义插件时改为: AddonPrepare(&Module{          Name:        conf.NAME,          Class:       conf.CLASS,          Description: conf.DESCRIPTION,      }).SetThemes(          // 自动设置传入的第1个主题为当前主题          &Theme{              Name:        "default",              Description: "default",              Src:         map[string]string{},          },          &Theme{              Name:        "blue",              Description: "blue",              Src:         map[string]string{                  "img":"/public/banner.jpg",              },          },      ).          // 指定当前主题          UseTheme("blue").          // 中间件          // Use(...).          // 注册路由,且可添加中间件          GET("/index?addon", &IndexController{}).          HEAD("/to", &IndexController{}).          DELETE("/del/:addon", someHandlerFunc, &IndexController{}).          POST("/add", &IndexController{}, someHandlerFunc).          PUT("/ReadMail", someHandlerFunc, &ReadController{}, someHandlerFunc).          PATCH("/ReadMail", someHandlerFunc, &ReadController{}, someHandlerFunc).          OPTIONS("/ReadMail", someHandlerFunc, &ReadController{}, someHandlerFunc)  }

定义控制器

  package controller    import (      "github.com/henrylee2cn/thinkgo/application/admin/common"  )    type IndexController struct {      common.BaseController  }    func (this *IndexController) Index() {      // 当url类似 "/admin/index/index?addon=mail" 时,这样获取参数      id := this.Query("addon")      if id == "" {      // 当url类似 "/admin/index/index/mail" 时,这样获取参数          id = this.Param("addon")      }      // 传入模板变量      this.Data["name"] = "henrylee2cn"      // 渲染模板并写回响应流      this.HTML()  }

开源协议

ThinkGo 项目采用商业应用友好的 MIT 协议发布。
 

项目地址: https://github.com/henrylee2cn/thinkgo

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1452948259636.html
Google Go/Golang开发 thinkgo - Go - GitHub