gin初学者如何搭建一个简单的项目

项目需要搭建一个web前后端,前端使用了vue-admin-template框架,因为这个不属于新学习的内容,这次按下不表,该文章主要是记录怎么搭建gin后台。后端本来用django已经搭建完成了,但是基于一直想学习一下gin框架,趁着这次机会,搭建一下gin。因为先前用过beego,搭建的过程中最好跟beego对比一下。刚有这个想法,有几个疑问,需要逐一了解。gin中文文档

  1. gin的mvc框架如何体现,项目的目录会很明显的体现出来么,类似beego的model, controller等,需要确定好项目的整体布局

2.因为这次的项目需要连接数据库,并操作数据库表,gin有自己的orm么

3.前端怎么整合到后台里面
好啦,开始~

1.orm框架选择

https://studygolang.com/articles/10208
看了这篇文章,因为这次的项目也不是大型的项目,只为了练手,看了一下比较流行的xrom和grom都能满足需求的,看了github,gorm的star数目比较多,好了就用它(就这么随意)

2. 选定了orm,就看一下gin gorm怎么搭建mvc框架

  1. gorm本身不支持数据库表生成go struct文件,需要借助其余工具(据说xorm可以)
    2)日志设置:https://www.flysnow.org/2017/05/06/go-in-action-go-log.html这个日志不是很好,不符合太过于冗余,后续可以修改
    3)热更新:https://juejin.im/post/5e1309fce51d4541111e9a1e用fresh

3. 如何部署前后端

1)前端配置一下生成的静态文件路径,自定义到后端路径,我的项目是在vue.config.js文件里面配置:

outputDir: '../${后端路径}/dist',
assetsDir: 'static',

2)后端这样配置静态文件配置

router := gin.Default()
router.Static("/static", "dist/static")     // 添加资源路径
router.StaticFile("/", "dist/index.html")  //前端接口

这样只要启动后端代码,访问根目录就直接访问到静态资源了

4.gin和beego的对比

因为两个都使用过,说一下个人对于两者的优缺点

gin:

优点:很轻量,很多的东西都可以自己定制化,避免了生成不必要的冗余代码
缺点:正是所有的东西都需要定制化,所以上手会比beego慢,所有的东西都要自己封装

beego:

优点:一条初始化命令就能生成mvc所需要的代码,只要关注自己的业务代码就行
缺点:比较厚重,会生成很多工程中不需要的代码,例如:model里面生成的数据库增删改查很多时候就不适用,需要自己重写等
这只是刚开始使用的时候,自己的项目并没有测试复杂的场景,自己最初级的感受,没有从两个框架的性能做更好的对比,后续有时间,可能对两个框架性能各个方面

5.遇到的坑:

  1. gorm连接数据库的时候导入驱动的时候最开始导入的是github.com/go-sql-driver/mysql,连接的时候不会报错,但是一操作数据库就会报sql database is closed 错误,换成gorm自己的mysql驱动就好了github.com/jinzhu/gorm/dialects/mysql

你可能感兴趣的:(gin初学者如何搭建一个简单的项目)