gin json参数_GIN框架博客篇 (1)基础模板

GINBLOG篇

Gin博客篇

--基础模板篇

首先创建4个基本的文件夹

**ginblog *config|__config.ini*model|__Article.go|__Category.go|__db.go|__User.go*routes|__router.go*utils|__setting.gomain.gogo.mod

前提:在开始之前先配置好mysql,创建名为ginblog的数据库。

config.ini(配置文件)

[server]# debug 开发模式, release 生产模式AppMode = debugHttpPort = :8080[database]Db = mysqlDbHost = 127.0.0.1DbPort = 3306DbUser = rootDbPassWord = 123456DbName = ginblog

setting.go

package utilsimport (    "fmt"    "gopkg.in/ini.v1")var (    AppMode string    HttpPort string    Db string    DbHost string    DbPost string    DbUser string    DbPassword string    DbName string)func init() {    file, err := ini.Load("./config/config.ini")    if err != nil {        fmt.Println("配置文件读取错误,请检查文件路径:", err)}     LoadServer(file)    LoadData(file)}func LoadData(file *ini.File) {    Db = file.Section("database").Key("Db").MustString("mysql")    DbHost = file.Section("database").Key("DbHost").MustString("localhost")    DbPost = file.Section("database").Key("DbPort").MustString("3306")    DbUser = file.Section("database").Key("DbUser").MustString("root")    DbPassword = file.Section("database").Key("DbPassWord").MustString("123456")    DbName = file.Section("database").Key("DbName").MustString("ginblog")}func LoadServer(file *ini.File) {    AppMode = file.Section("server").Key("AppMode").MustString("debug")    HttpPort = file.Section("server").Key("HttpPort").MustString("8080")}

配置文件这里就配置好了,配置文件的作用就是为了方便修改变量,比如MySQL以及账号,密码,数据库名,再就是接口和本地地址。

Mysql数据库篇:

这里使用GORM来创建三个表,分别用作存储文章内容,文章类型,用户的账户和密码。

文章内容

type Article struct {    Category Category `gorm:"foreignKey:Cid"`    gorm.Model    Title string `gorm:"type:varchar(100);not null" json:"title"`    Cid int `gorm:"type:int;not null" json:"cid"`    Desc int `gorm:"type:varchar(200)" json:"desc"`    Content string `gorm:"type:longtext" json:"content"`    Img string `gorm:"type:varchar(100)" json:"img"`}

文章类型

type Category struct {    gorm.Model    ID uint `gorm:"primary_key;auto_increment" json:"id"`    Name string `gorm:"type:varchar(20);not null" json:"name"`}

用户信息

type User struct {    gorm.Model    Username string `gorm:"type:varchar(20);not null " json:"username"`    Password string `gorm:"type:varchar(20);not null" json:"password"`    Role int `gorm:"type:int" json:"role"`}

我们的目的是照着这三个结构体的内容在数据库中形成3张表。(使用GORM来创建)

然后使用数据库创建

package modelimport (    "fmt"    "ginblog/utils"    "gorm.io/driver/mysql"    "gorm.io/gorm")var db *gorm.DBvar err errorfunc InitDb() {    dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",        utils.DbUser,        utils.DbPassword,        utils.DbHost,        utils.DbPost,        utils.DbName,)    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})    if err != nil {        fmt.Printf("连接数据库失败,请检查参数: ",err)}    db.AutoMigrate(&User{},&Category{},&Article{})    //db.AutoMigrate(&User{},&Category{})}

在main方法中运行一次model.InitDb(),三张表就会在mysql生成,并且每张表后面都会有s。

再就是路由器

package routersimport (    "ginblog/utils"

"github.com/gin-gonic/gin"

"http/htp"

)func InitRouter() { gin.SetMode(utils.AppMode) r := gin.Default() router := r.Group("api/v1"){        router.GET("/hello",func(context *gin.Context){            c.JSON(                http.StatusOK,gin.H{                    "message": "hello"               }           )       })} r.Run()}

这就是一个基础的模板,功能的增删改查,路由的控制器写法,将在下次讲解。

5458f35647165126834227fa57a9e368.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值