![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
gin
weixin_38107457
这个作者很懒,什么都没留下…
展开
-
日志 logrus第三方库的使用
go原创 2022-06-30 21:14:49 · 262 阅读 · 0 评论 -
gin 配置文件
go原创 2022-06-30 21:06:13 · 911 阅读 · 0 评论 -
gin_gorm
65484原创 2022-06-30 20:33:23 · 729 阅读 · 0 评论 -
Unknown database连接数据库错误
mysql原创 2022-06-29 00:01:06 · 824 阅读 · 0 评论 -
import “github.com/gin-gonic/gin“ 爆红
33原创 2022-06-20 20:46:13 · 1023 阅读 · 1 评论 -
JSON渲染输出
gin 对于API json 的支持非常友好,可以让我们非常方便地开发一个基于JSON的apifunc main(){ r:= gin.Default() r.GET("/hello",func(c *gin.Context){ c.JSON(200,gin.H("message":"hello world")) }) r.Run(":8080")}通过c.JSON方法,可以非常方便输出json格式内容在浏览器中访问http://localhost:8080/hel原创 2021-07-18 13:05:27 · 98 阅读 · 0 评论 -
protoBuf组件介绍(protocol buffers)
protoBuf是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等protoBuf组件的安装:1.下载软件:https://github.com/protocolbuffers/protobuf/releases,下载对应的安装文件2.讲下载的压缩包解压,并讲解压后的文件夹拷贝到要存放的位置,比如D:\go下3.添加环境变量:或者将bin目录下的protoc.exe拷贝到gopath下的bin文件夹中,不用添加环境变量在cmd...原创 2021-07-03 16:01:14 · 196 阅读 · 0 评论 -
gin_日志介绍
一、日志的作用 记录用户操作的审计日志,甚至有的时候就是监管部门的要求。 快速定位问题的根源 追踪程序执行的过程。 追踪数据的变化 数据统计和性能分析 采集运行环境数据 日志是程序的重要组成部分二、日志模板1.什么是日志模板?一种统一的格式,一种规范2.日志模板的作用?可读性 数据分析,二次挖掘...原创 2021-06-21 21:58:12 · 241 阅读 · 0 评论 -
gorm 整合gorm
data_sourcepackage data_sourceimport ( "fmt" "gin_project/models" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")var Db *gorm.DBvar err errorfunc init() { fmt.Println("初始化init") //Db,err = gorm.Open("mysql","root:12345原创 2021-06-20 13:08:32 · 127 阅读 · 0 评论 -
gin_bug runtime error: invalid memory address or nil pointer dereference
原创 2021-06-20 12:08:36 · 666 阅读 · 0 评论 -
原生sql
一、查询用Rawvar users []relate_tables.Userdb.Raw("select * from users").Find(&users)二、增改删用 Execdb.Exec("insert into users (name,age) values(?,?)","hallen222",111)db.Exec("update users set name = ? where id = ?","hallen111",1)db.Exec("delete fro原创 2021-06-19 22:39:39 · 64 阅读 · 0 评论 -
错误处理 &事务
如果在执行SQL查询的时候,出现错误,GORM 会将错误信息保存到 *gorm.DB 的Error字段,我们只要检测Error字段就可以知道是否存在错误。一、处理单个错误原创 2021-06-19 22:37:40 · 393 阅读 · 0 评论 -
gin_DB接口
// First // 按照主键顺序的第一条记录,(主键升序) var user relate_tables.User db.First(&user) fmt.Println(user) // {2 林锡宏 32 揭阳市龙江镇 2} //2 var user2 relate_tables.User db.First(&user2,"name=?","樱木") fmt.Println(user2) // {3 樱木 18 神奈川 3} // 3 var user3 re.原创 2021-06-19 21:58:18 · 357 阅读 · 0 评论 -
多对多操作
package relate_tablestype Article2 struct { Id int Title string Content string Desc string Tag []Tag `gorm:"many2many:Article2s2Tags"`}type Tag struct { Id int Name string Desc string}一、增加原创 2021-06-19 21:15:30 · 72 阅读 · 0 评论 -
一对多关联操作
package relate_tables// 一对多type User2 struct { Id int Name string Age int Addr string Article []Article `gorm:"ForeignKeyUId;AssociationForeignKey:Id"`}type Article struct { Id int Title string Content string Desc string // 外键 UId int.原创 2021-06-19 14:55:38 · 96 阅读 · 0 评论 -
一对一关联操作
一对一one_to_one.gopackage relate_tables// 一对一//type User struct {// Id int// Name string// Age int// Addr string////}////type UserProfile struct {// Id int// Pic string// CPic string// Phone string// User User `gorm:"ForeignKey:UId;Associa原创 2021-06-19 14:07:20 · 85 阅读 · 0 评论 -
gorm模型定义
一、模型定义的作用用作数据库数据转换和自动建表二、模型名和表名的映射关系规则第一个大写字母变为小写,遇到其他大写字母变为小写并且在前面加下划线,连着的几个大写字母,只有第一个遵循上面的两条规则,其他的大写字母转为小写,不加下划线,遇到小写,前面的第一个大写字母变小写并加下划线复数形式举例User --> users 首字母小写,复数UserInfo --> user_infosDBUserInfo --> db_user_infosDBXXXXUserInfo --原创 2021-06-17 00:04:08 · 301 阅读 · 0 评论 -
DML操作
是对数据的操作1.增db.Create(&User{Id:1,Name:"hallen",Age:18})2.查var user Userdb.First(&user,1) // 默认使用id字段fmt.Println(user)db.First(&user,"name=?","hallen") // 查询指定字段fmt.Println(user)3.改:先查再改var user Userdb.First(&user,1) // 默原创 2021-06-17 00:01:50 · 64 阅读 · 0 评论 -
gorm介绍
go get github.com/jinzhu/gorm官方文档:http://gorm.book.jasperxu.com/DDL操作对数据库,表,字段等的操作,这里指的DDl不包括数据库一、数据库连接数据库/ 引入gorm及驱动包"github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mysql"db,db_err := gorm.Open("mysql","root:Qazwsx123@[tcp](localhost原创 2021-06-16 23:59:14 · 137 阅读 · 0 评论 -
中间件的使用
一、使用中间件router := gin.New()router.Use(gin.Logger())router.Use(gin.Recovery())二、中间价的使用位置说明中间件的使用顺序绝对了什么时候执行中间件,比如有三个路由:router := gin.Default()router.Get("/login",xxx)router.Get("/user_list",xxx)router.Get("/news_list",xxx)加入user_list和news_list原创 2021-06-07 20:56:02 · 133 阅读 · 0 评论 -
gin路由抽取
1.main.go中"gin_test_project/routers"router := gin.Default()routers.Routers(router) // routers是总路由的package名称2.总路由package routersimport ( "github.com/gin-gonic/gin" "gin_test_project/valid")func Routers(router *gin.Engine) { vali原创 2021-05-29 14:15:53 · 125 阅读 · 0 评论 -
返回第三方获取的数据
package mainimport ( "github.com/gin-gonic/gin" "net/http")/** 如果我们自己开发的server程序,在Client请求时需要获取第三方网站上数据并将其返回,*/func main(){ r := gin.Default() r.GET("/GetOtherData", func(c *gin.Context) { //url := "http://www.baidu.com" url :="https://ss原创 2021-05-29 14:10:42 · 273 阅读 · 0 评论 -
go文件上传
一、form表单上传文件1.单文件前端:<form action="/upload2" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="提交"></form>注意:设置enctype参数后端:func Upload2(context *gin.Context) {原创 2021-05-29 14:09:59 · 161 阅读 · 0 评论 -
获取post请求数据
一、获取表单提交的数据1.contxt.PostForm(“username”) 获取表单中的name属性对应的值前端:submit提交<form action="/hello_add" method="post"> <input type="text" name="username"><br> <input type="text" name="age"><br> <input type="submit" val原创 2021-05-29 14:04:25 · 456 阅读 · 0 评论 -
15 【GET请求】获取路由上的参数值
package chapter02import ( "github.com/gin-gonic/gin" "net/http")// 15 【GET请求】获取路由上的参数值// 路径中直接加上参数值// http://localhost:9000/param/123func Param1(ctx *gin.Context){ id := ctx.Param("id") ctx.String(http.StatusOK,"hello %s",id) // hello 123}/原创 2021-05-29 13:48:30 · 192 阅读 · 0 评论 -
5 【Gin模板渲染】使用模板文件
package mainimport "github.com/gin-gonic/gin"func Hello(ctx *gin.Context) { name := "后台的传参" // 指定html文件 除了第一级template路径不需要指定,其他路径都需要指定 ctx.HTML(200,"news/news.html",name)}func Users(ctx *gin.Context){ name := "user页面" ctx.HTML(200,"users/us..原创 2021-05-26 21:46:22 · 116 阅读 · 0 评论 -
go将外部图片转为base64
func GetBase(ctx *gin.Context){ // 获取云图片 res,err := http.Get("https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2890536948,4093473200&fm=26&gp=0.jpg") if err != nil { fmt.Println(err) return } defer res.Body.Close() // 读取获取的[]by原创 2021-04-01 15:05:12 · 341 阅读 · 0 评论 -
micro微服务
1安装microgo get github.com/micro/microGO 运行提示build command-line-arguments: cannot loadXXXXX问题,go mod 加载问题原创 2021-03-28 22:22:27 · 64 阅读 · 0 评论 -
上传文件
func GetFile(ctx *gin.Context) { upload_file,_ := ctx.FormFile("upload_file") fmt.Println(upload_file) file_path := "upload/" + upload_file.Filename ctx.SaveUploadedFile(upload_file,file_path) ctx.JSON(http.StatusOK,gin.H{ "code":200, "msg":"成功",原创 2021-03-27 15:24:32 · 79 阅读 · 0 评论 -
post请求
func getPostData(ctx *gin.Context){ name := ctx.PostForm("name") password := ctx.PostForm("password") fmt.Println(name) fmt.Println(password) ctx.JSON(http.StatusOK,gin.H{ "code":200, "msg":"成功", })}原创 2021-03-27 14:26:50 · 74 阅读 · 0 评论 -
get请求
package chapter11import ( "fmt" "gin_project/models" "github.com/gin-gonic/gin" "net/http")type Book struct { Id int `json:"id"` Name string `json:"name"` Author string `json:"author"`}func ApiTest(ctx *gin.Context) { // 结构体 map student原创 2021-03-27 14:05:18 · 71 阅读 · 0 评论 -
我就想试试github.com/gin-gonic/gin,为什么死活都run不起来
原创 2021-03-16 17:14:19 · 326 阅读 · 0 评论 -
go环境搭建
安装路径安装gin原创 2021-03-16 02:31:44 · 131 阅读 · 0 评论