首页 > TAG信息列表 > gin
在PostgreSQLPro中使用GIN索引提高数据库的性能
PostgreSQL是一个广泛使用的开源数据库管理系统。它拥有一系列索引方法,包括广义倒置索引(GIN)。本文深入研究了GIN索引的机制及其对在PostgresPro环境中优化数据库性能的重大影响。GIN指数GIN索引作为倒置索引的集合,用于管理复杂的数据类型,如数组、JSON和全文搜索。 在此结构中,每个索Let's Go系列--实战Cookie与Session
在Gin中使用Cookie 下面代码是如何使用Cookie的样例,包括创建Cookie、获取Cookie和删除Cookie。 package main import ( "fmt" "net/http" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/set-cookie", func(ctx *gGolang Gin实践 连载十二 生成二维码
前言 本章节将实现如下功能: 生成二维码 合并海报(背景图+二维码) 实现 首先,你需要在 App 配置项中增加二维码及其海报的存储路径,我们约定配置项名称为 QrCodeSavePath,值为 qrcode/ 生成二维码 安装:go get -u github.com/boombuler/barcode 工具包 考虑生成二维码这一动作贴合工具Golang Gin实践 连载十一 实现导出、导入 Excel
前言 在本节,我们将实现对标签信息的导出、导入功能,这是很标配功能了,希望你掌握基础的使用方式 另外在本文我们使用了 2 个 Excel 的包,excelize 最初的 XML 格式文件的一些结构,是通过 tealeg/xlsx 格式文件结构演化而来的,因此特意在此都展示了,你可以根据自己的场景和喜爱去使用 配Gin实践 连载九 优化配置结构及实现图片上传
优化配置结构及实现图片上传 一天,产品经理突然跟你说文章列表,没有封面图,不够美观,!)&¥!&)#&¥!加一个吧,几分钟的事 你打开你的程序,分析了一波写了个清单: 优化配置结构(因为配置项越来越多) 抽离 原 logging 的 File 便于公用(logging、upload 各保有一份并不合适) 实现上传图片接口(需限制文件mindxdl--common--logger.go
// Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common the controller of the programpackage commonimport ( "fmt" "github.com/gin-gonic/gin" "huawei.com/npu-exporter/hwlog" "matGin实践 连载六 Golang优雅重启HTTP服务
http.Server-Shutdown() package main import ( "context" "fmt" _ "gin_log/models" "gin_log/pkg/setting" "gin_log/routers" "log" "net/http" "os" "os/signal"gin swagger使用
==背景== 一直都是使用showdoc来管理接口文档,有些麻烦。 在网上调查了一下自动管理文档的插件,发现大家都在用swagger, 于是尝试用一下gin-swagger插件 ==版本== go版本:1.18 ==插件安装== 1、安装swag命令插件,用于执行swag命令 go get github.com/swaggo/swag/cmd/swag go ingo gin参数验证
go gin参数验证 结构体验证 用gin框架的数据验证,可以不用解析数据,减少if else,会简洁许多 package main import ( "fmt" "time" "github.com/gin-gonic/gin" ) //Person .. type Person struct { //不能为空并且大于10 Age int `form:"age&quogo gin日志
目录go gin日志日志文件 go gin日志 日志文件 package main import ( "io" "os" "github.com/gin-gonic/gin" ) func main() { gin.DisableConsoleColor() // Logging to a file. f, _ := os.Create("gin.log") giGin实践 连载五 编写一个简单的文件日志
编写一个简单的文件日志 在上一节中,我们解决了API’s可以任意访问的问题,那么我们现在还有一个问题。 就是我们的日志,都是输出到控制台上的,这显然对于一个项目来说是不合理的,因此我们这一节简单封装log库,使其支持简单的文件日志! 新建logging包 我们在pkg下新建logging目录,新建file.go gin渲染
go gin渲染 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/testdata/protoexample" ) // 多种响应方式 func main() { // 1.创建路由 // 默认使用【一个经典BUG】gin框架中,异步协程使用context导致取不到数据
bug的内容大致如下: func httpHandle(c *gin.Context) { go func(ctx Context){ v := ctx.Value("xxx") // 这里取不到值,导致后续发生panic }(c) } 1.发生panic是随机的; 2.问题的原因是:当协程开始使用context的时候,父级协程技术,gin框架回收了context。 context失golang面试经验2
1、make 和 new 的区别? 宝典导航 2、了解过golang的内存管理吗?宝典导航 3、调用函数传入结构体时,应该传值还是指针?说出你的理由?宝典导航 4、线程有几种模型?宝典导航 5、Goroutine 的原理了解过吗,讲一下实现和优势? 宝典导航 6、Goroutine 什么时候会发生阻塞? 7、PMG模型中Goroutgo delve远程调试
先在服务器上安装go-delve go-delve的github地址:https://github.com/go-delve 在服务器上安装好go语言的环境,然后在服务器上安装go-delve go install github.com/go-delve/delve/cmd/dlv@latest 以服务器api做示例,示例代码如下,将代码文件上传到服务器 package main importgin 框架源码分析
官方文档示例 package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() // 监听并在 0.0.0.0:8080 上启动golang gin 框架读取无法用 body 传递的表单参数
这两天发现一个有意思的情况,好像 gin 框架里 c.PostForm() 函数只能从表单中获取参数,不能从 body 中解析表单参数,也就是说你如果用 c.PostForm() 来解析获取参数,客户端发起请求时,如果参数放在表单里,服务端能正常获取到参数,但是如果客户端把参数放在 body 里,即使 header 里配置了 c基本语句之switch多选择语句
基本语句之switch多选择语句 switch-case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 语法格式: switch(expression){ case value: //语句 break;//可选 case value: //语句 break;//可选vue+gin上传文件
前端 html <form action="" method="post" enctype="multipart/form-data"> <input id="fileUpload" type="file" name="upload"> <input type="button" @click="submgin CRUD
gin CRUD // units package dal //cxg 2022-7-29 import ( "net/url" "svrGIN/db" "svrGIN/model" "github.com/gin-gonic/gin/binding" "strings" "svrGIN/log" "githubgin路由
gin路由 // svrGIN project main.go package main //cxg 2022-7-29 import ( "svrGIN/dal" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() rest := r.Group("/rest") { rest.POST("/unit标识符注意点
标识符注意点 目录标识符注意点标识符的规范标识符对大小写十分敏感不能使用关键字作为变量名或者方法名 标识符的规范 所有的标识符都应该以字母(A-Z或者a-z)、美元符号($)、或者下划线(_)开始。 第一个字符之后可以是字母、美元符号、下划线或者数字的任何字符,但是不能是特殊符gin领域层:用户实体编写和值对象(初步)
1.用户实体和值对象 2. 要做的事 3.常见的四层模型 4.Domin层 5.值对象gin-巧用Context传递多种参数
目录 引言: 1.巧妙包装gin.Context为NewContext 2 在使用gin.Use对每一个请求的Context进行组装 3 在路由绑定时解析出NewContext来为应用层函数提供参数,并且调用应用层函数 4 总结 引言:首先给臆造这样一个场景: 假设有web端,有众多用户需要从服务端去索取数据。 分析下这个过程,由Gin请求参数获取
获取querystring参数 url问号后面的参数 r.GET("/user", func(c *gin.Context) { username := c.DefaultQuery("username", "你的名字") address := c.Query("address") //输出json结果给调用方 c.JSON(http.StatusOK, gin.H{ "username