一、前言
今天为大家推荐的Go框架,比较适合企业和个人用于实战项目,框架前后端质量比较注重实际应用。后端使用Gin优异性能,和前端Arco Design 优秀UI体验,两者结合可开发出,性能与交互都优秀的项目。社区团队们更加多年积累经验打磨出Go快速开发应用框架。同比其他框架开发速度更快,扩展性更强,资源复用性更高,框架约束开发规则更简单,特别是数据库操作更简单。
下面举例文章的增删查找操作:
1. 添加一条文章内容:
// 添加文章内容func (api*Article) Save(c*gin.Context) { //获取post传过来的databody, _ :=ioutil.ReadAll(c.Request.Body) varparametermap[string]interface{} _=json.Unmarshal(body, ¶meter) addId, err :=model.DB().Table("article").Data(parameter).InsertGetId() iferr!=nil { results.Failed(c, "添加失败", err) } else { results.Success(c, "添加成功!", addId, nil) } }
2. 获取文章列表
// 获取文章列表func (api*Article) Get_list(c*gin.Context) { name :=c.DefaultQuery("name", "") pageNo, _ :=strconv.Atoi( c.DefaultQuery("page", "1")) pageSize, _ :=strconv.Atoi(c.DefaultQuery("pageSize", "10")) MDB :=model.DB().Table("article").Fields("id,name,image,des,price,weigh,status,visit,star,createtime") ifname!="" { MDB.Where("name", "like", "%"+name+"%") } list, err :=MDB.Limit(pageSize).Page(pageNo).Order("id desc").Get() iferr!=nil { results.Failed(c, err.Error(), nil) } else { vartotalCountint64totalCount, _=MDB.Reset().Count() results.Success(c, "获取文章列表", map[string]interface{}{ "page": pageNo, "pageSize": pageSize, "total": totalCount, "items": list}, nil) } }
3. 删除文章
// 批量删除文章func (api*Article) Del(c*gin.Context) { body, _ :=ioutil.ReadAll(c.Request.Body) varparametermap[string]interface{} _=json.Unmarshal(body, ¶meter) ids :=parameter["ids"] res, err :=model.DB().Table("article").WhereIn("id", ids.([]interface{})).Delete() iferr!=nil { results.Failed(c, "删除失败", err) } else { results.Success(c, "删除成功!", res, nil) } }
从以上大家可以看到了,这个框架使用起来很简单,框架把发展繁琐的语法规则封装简化了,让开发代码简洁易读,复用性强。
二、优势简介
- 1.基于优秀成熟框架集成,保证系统文档可靠。集成的主要有Gin、Arco Design 、Mysql等主流框架技术。
- 2.系统已集成开发常用基础功能,开箱即用,快速开始您业务开发,快人一步,比同行节省成本,
- 3.框架提供其他开发者开发的插件,可快速安装或卸载,让开个资源共享,同意功能无需重复造车,一键安装即可使用。
- 4.框架搭建了一键CRUD生成前后端代码,建数据库一键生成,节省您的复制粘贴时间,进一步为您节省时间。
- 5.框架自带API接口文档管理,接口带有请求token等配置,添加接口只需配置路径和数据库或者备注,其部分信息如数据字段,系统自动根据数据库字段补齐,开发配套接口文档尽可能的为您节省一点时间。不需要其他接口文档工具复制粘贴,登录注册等时间。还有一个重点!接口文档可以一键生成接口CRUD的代码和通用的操作数据的CRUD接口,根据您的业务选择自己写接口代码、一键生成接口代码、不用写和生成代码调用通用接口。让写接口工作节省更多时间。
- 6.前后端分离解耦业务,让前段人员与后端人协调开发,提高项目交付,并且可以开发出功能复杂度高的项目。
- 7.前端用Vue3+TypeScript 的UI框架Arco Design,好用的UI框架前端可以设计出优秀且交互不错的界面,完善的大厂UI支持,前端开发效率也很高!
- 8.框架的数据库操作也是极为简单,你可以去开发文档看看,用gofly框架开发数据库这块几乎是去文档复制粘贴就可以从前言介绍可以看到。
三、打包部署到阿里云(建议linux)上
1.打开项目根目录,在根目录路径cmd打开命令窗口,输入如下命令:
SET GOOS=linux SET GOARCH=amd64 go build
等待几秒生成完成,在根目录下就有一个gofly文件,注意linux版生产的文件不带后缀。
2.安装Go环境,建议使用宝塔面板(安装方法区参考宝塔面板文档)
3.上传项目文件到服务器
上传文件有:config/settings.yml、runtime(空文件夹)、resource(资源文件),gofly(打包编译文件),如下图:
resource(资源文件)文件内文件有:staticfile(存放固定文件)、uploads(存放上传文件)、webadmin(SaaS后端管理前端打包后上传到这里)、webbusiness(SaaS上传业务端前端打包文件),如下图:
4.新建数据库并导入数据库文件
建号数据库后在config/settings.yml修改数据库配置。
5.在宝塔面板Go项目管理配置域名,最后启动项目,就OK了!
四、在线体验
五、图片预览
下面是生成代码示例:
结束语
大家可以用来开发中小项目,例如:政府外包项目,企业外包,公司内部平台搭建等。框架实用性强,也适合初学者搭建实战型项目积累项目案例。