发布于2021-06-12 13:10 阅读(539) 评论(0) 点赞(30) 收藏(0)
Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点;
对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错
借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范
文档地址:https://github.com/gin-gonic/gin
建议:gin框架和laravel框架有些接近,我们可以按laravel框架思想来学习使用。
按照安装第三方依赖包方式安装即可(前面讲过)
# go get -u github.com/gin-gonic/gin
示例1:web方式访问接口
建立文件gin-frame/example.go
- package main
- import "github.com/gin-gonic/gin"
-
- func main() {
- r := gin.Default()
- r.GET("/index", func(c *gin.Context) {
- c.JSON(200, gin.H{
- "message": "ok",
- })
- })
- r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
- }
启动运行此example.go,作为服务监听
# go run example.go
浏览器访问:http://127.0.0.1:8080/index
示例2:数据库orm访问
需要先安装依赖包gorm
# go get -u gorm.io/gorm
本地创建数据库,名为db_go_shop,建立测试表,测试数据,如下
- CREATE TABLE `tp_goods` (
- `goods_id` int(11) NOT NULL AUTO_INCREMENT,
- `goods_name` varchar(100) NOT NULL,
- `shop_id` int(11) NOT NULL,
- `category_id` int(5) DEFAULT NULL,
- PRIMARY KEY (`goods_id`)
- ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
-
- -- ----------------------------
- -- Records of tp_goods
- -- ----------------------------
- INSERT INTO `tp_goods` VALUES ('1', '花生', '1', '1');
- INSERT INTO `tp_goods` VALUES ('2', '牛奶', '1', '1');
目录结构如下:
goods.go
- package models
-
- import "gorm.io/gorm"
-
- type Goods struct {
- gorm.Model
- GoodsId int `gorm:"primarykey"` //对应表中的字段名 goods_id
- ShopId int
- CategoryId int
- GoodsName string
- }
models.go
- package models
-
- import (
- "fmt"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "gorm.io/gorm/schema"
- )
-
- var (
- dsn string = "root:root@tcp(localhost:3306)/db_go_shop?charset=utf8mb4"
- )
-
- func DB() *gorm.DB {
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
- NamingStrategy: schema.NamingStrategy{
- TablePrefix: "tp_",
- SingularTable: true,
- },
- })
- fmt.Println("err : ", err)
- return db
- }
models_test.go
- package models
-
- import (
- "fmt"
- "testing"
- )
-
- func TestGetGoods(t *testing.T) {
- where := map[string]interface{}{
- "goods_id": 1,
- }
- var goods Goods
- DB().Debug().Where(where).Unscoped().Find(&goods)
- fmt.Println("goods : ", goods)
- }
测试运行(在当前代码目录下)
# go test -v
查询数据库返回结果。
作者:长这么胖
链接:http://www.javaheidong.com/blog/article/221871/a28aeb1c7ce7c4bfef80/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!