文章
273
标签
62
分类
34
首页
文章
标签
分类
资源
留言
猿码记
搜索
首页
文章
标签
分类
资源
留言
猿码记
Gin框架(七):文件上传
发表于
2021-05-11
|
编程
Go
Gin框架
1.介绍在Gin框架中已经支持文件上传,包括单文件上传和多文件上传。 2. 单文件上传在Gin框架中可以通过FormFile("param")来接收上传的单个文件信息,具体使用参考下面代码: 2.1 代码示例//--- main.go ---------------package mainimport ( "github.com/gin-gonic/gin" "go-use/practise")func main() { // 创建一个默认的路由引擎 engine := gin.Default() // 注册路由 pract ...
Gin框架(六):参数绑定
发表于
2021-05-10
|
编程
Go
Gin框架
1.介绍在Gin框架中参数不但能通过指定key接收,也可以直接绑定到结构体中,本篇主要讲解怎么直接绑定到结构体中,若要查看通过指定key接收,可查看历史文章Gin框架(五):参数接收; 1.1 绑定方法 Gin提供了Must bind 和 Should bind两种类型的绑定方法,这两种类型对应的方法如下: 功能 Must bind方法 Should bind方法 Bind ShouldBind 绑定JSON BindJSON ShouldBindJSON 绑定XML BindXML ShouldBindXML 绑定GET BindQuery ShouldBin ...
Gin框架(五):参数接收
发表于
2021-04-29
|
编程
Go
Gin框架
1.路由参数1.1 Param当注册路由格式为:/path/:a/:b 时,:x指的就是路由参数,可以直接通过Param("x")获取值信息。 a.代码示例: package mainimport ( "github.com/gin-gonic/gin" // 引入Gin框架)func main() { // 创建一个默认的路由引擎 engine := gin.Default() // 注册路由 engine.GET("/test/:name", func(context *gin.Context) { // 接 ...
Gin框架(四):路由组使用
发表于
2021-04-28
|
编程
Go
Gin框架
1.什么是路由组?从字面意思理解,路由组指的就是一组路由。那么什么样的路由可以归类到一组呢?在实际使用中,比较常见的场景的是根据版本分组。比如下图 2.使用语法在Gin框架中提供了一个函数Group可以将路由进行分组管理。使用语法如下: a.不嵌套分组: v1 := engine.Group("v1"){ v1.GET("/path/xxx", func(context *gin.Context) { ... }) v1.POST("/user/xxx", func(context *gin.Con ...
Gin框架(三):路由初使用
发表于
2021-04-26
|
编程
Go
Gin框架
1.介绍Gin框架的路由功能是基于httprouter(https://github.com/julienschmidt/httprouter)设计的,httprouter是一由golang实现的路由组件。httprouter使用基数树(也叫基数特里树或压缩前缀树)这种数据结构来维护映射路由关系,通过前缀树快速路由。同时其里面的HttpRouter结构体实现了golang的net.http.server的Handler接口,可以作为httpHandle发布。 基数树(Radix Tree)又称为PAT位树(Patricia Trie or crit bit tree),是一种更节省空间的前缀 ...
Gin框架(二):服务启动源码分析
发表于
2021-04-24
|
编程
Go
Gin框架
1.启动服务1.1 服务源码package main// 引入gin框架import "github.com/gin-gonic/gin"func main() { // 创建一个默认的路由引擎 engine := gin.Default() // 注册Get路由 engine.GET("/", func(ctx *gin.Context) { ctx.JSON(200,gin.H{ "msg":"请求成功", }) }) // 默认监听的是 0.0.0. ...
Gin框架(一):快速入门
发表于
2021-04-22
|
编程
Go
Gin框架
1.什么是Gin Gin 是一个用Go (Golang)编写的 开源web 框架。 目前在GitHub Start 47.4K, 它是一个类似于 martini 但拥有更好性能的 API 框架,路由解析由于使用的是httprouter,速度提高了近 40 倍。 Github: https://github.com/gin-gonic/gin 中文文档: https://gin-gonic.com/zh-cn/docs/ 2.安装2.1 创建空目录➜ mkdir gin-use 2.2 使用go module初始化➜ go mod init go-usego: creating new g ...
Go常用包(八):sync辅助并发安全
发表于
2021-04-21
|
编程
Go
常用包篇
1.介绍sync包提供了互斥锁。除了Once和WaitGroup类型,其余多数适用于低水平的程序,多数情况下,高水平的同步使用channel通信性能会更优一些。 2.并发等待组(WaitGroup)WaitGroup,即等待一组Goroutine结束。父Goroutine调用Add()方法来设置应等待Goroutine的数量。每个被等待的Goroutine在结束时应该调用Done()方法。与此同时,主Goroutine可调用Wait()方法阻塞至所有Goroutine结束。 2.1 WaitGroup结构// A WaitGroup must not be copied after first ...
Go常用包(七):context上下文
发表于
2021-04-20
|
编程
Go
常用包篇
1.什么是上下文?从Go 1.7开始,标准库引入context(上下文),他主要用来在goroutine之间传递上下文信息(同步信号、超时时间、截止时间、Key-Val值对)。 2. 为什么要用上下文?2.1 场景说明在实际开发过程中,我们往往会在main.goroutine(主协程)中开启N 个goroutine(子协程)来处理其他逻辑,那么主协程和 子协程之间信号怎么同步呢?列举以下几个需要信号同步的场景。 当主协程报错或者因为其他原因需要取消时,需要通知子协程取消任务。 创建子协程时,希望指定超时时间或截止时间后,自动取消任务。 2.2 怎么解决?context 包提供了一些函数,协 ...
Go常用包(六):bufio有缓存的IO包使用
发表于
2021-04-13
|
编程
Go
常用包篇
1.介绍bufio包实现了有缓冲的I/O。它包装一个io.Reader或io.Writer接口对象,使用这个包可以大幅提高文件读写的效率。 1.如何提高效率? 1.写入流程梳理: 当写入内容小于缓冲区(buf)的可用大小时,内容写入缓存区(buf); 当缓冲区(buf)空间不够时,一次性将缓冲区(buf)内容写入文件,并清空缓存区(buf); 当写入内容大于缓冲区(buf)空间时,将内容直接写入文件; 2.读取流程梳理: 当读取内容小于缓冲区(buf)空间时,从缓存区(buf)读取; 当缓冲区(buf)内容为空时,一次性从文件中读取大小等于缓冲区(buf)的内容; 当写入内容大于缓冲区( ...
Go常用包(五):ioutil包使用
发表于
2021-04-01
|
编程
Go
常用包篇
1.介绍在Go语言中,io包主要声明的是对I/O操作的基本接口,而io/ioutil包则实现了对应的方法,方便我们直接使用。 2.方法列表 方法名 描述 NopCloser 对Reader进行封装,返回一个ReadCloser ReadAll 对 Reader 进行读取, 直到发生错误或者遇到 EOF 为止, 然后返回被读取的数据。 ReadFile 读取指定文件的内容,并返回。 ReadDir 读取 指定的目录, 并返回排序后的目录列表(根据名称排序) TempDir 在指定目录新创建一个临时目录, 并返回该目录的路径 TempFile 在指定目录新创建一个临时 ...
Go常用包(四):fmt包使用
发表于
2021-03-31
|
编程
Go
常用包篇
1.输出控制台1.1 PrintfPrintf根据format参数生成格式化的字符串并写入标准输出。返回写入的字节数和遇到的任何错误。 1.format格式 动 词 功 能 %v 按值的本来值输出 %+v 在 %v 基础上,对结构体字段名和值进行展开 %#v 输出 Go 语言语法格式的值 %T 输出 Go 语言语法格式的类型和值 %% 输出 % 本体 %b 整型以二进制方式显示 %o 整型以八进制方式显示 %d 整型以十进制方式显示 %x 整型以十六进制方式显示 %X 整型以十六进制、字母大写方式显示 %U Unicode ...
1
…
10
11
12
…
23
刘庆辉
人生需要 “归零”,每过一段时间都要将过去 “清零”,让自己重新开始。
文章
273
标签
62
分类
34
Follow Me
公告
欢迎来到我的博客,互动请留言~
最新文章
Go常用包(三十六):自动化文档生成[swagger]
2024-06-20
Python框架篇(9):FastApi-SQLAlchemy集成
2024-05-10
Python框架篇(8):FastApi-文件处理
2024-04-01
Python框架篇(7):FastApi-依赖项
2024-03-26
AI学习(5):PyTorch-核心模块(Autograd):自动求导
2024-02-27
分类
AI学习
6
使用篇
1
使用篇(一):Ai绘图-Stable Diffusion WebUI
基础篇
5
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
微服务
18
Docker
4
创建自己的Docker镜像
Docker常用命令整理
查看Docker容器日志方法
基于Docker搭建禅道
Kubernetes
14
K8s学习(一):环境准备
K8s学习(二):集群部署
K8s学习(三):架构简述
K8s学习(四):运行应用
K8s学习(五):容器运行时Container
K8s学习(六):go服务部署(升级&回滚)
K8s学习(七):深入了解Pod
K8s学习(八):Pod健康检查
K8s学习(九):深入Service暴露
K8s学习(十一):Secret和ConfigMap
K8s学习(十):数据管理
K8s学习(十二):Helm入门
K8s学习(十三):部署服务[上篇]
K8s学习(十四):部署服务[下篇]
架构进阶
17
ElasticSearch
8
ElasticSearch(一):核心概念整理
ElasticSearch(二):架构设计总览
ElasticSearch7(三):索引(index)操作
ElasticSearch7(四):映射(mapping)操作
ElasticSearch7(五):文档操作-增改删
ElasticSearch7(六):文档查询之(Uri Search)
ElasticSearch7(八):聚合查询
ElasticSearch7(七):文档查询之(Request Body Search)
Mysql
8
MySQL深入(二):B+树索引分类和添加规则
MySQL深入(三):联合索引和覆盖索引
MySQL深入(一):B+树的演化和操作
SQL优化思路纪要
MyISAM和InnoDB之存储结构对比
在MySql中批量执行更新SQL语句
Innodb中的事务隔离级别和锁的关系
MYSQL性能优化神器之Explain使用
RabbitMQ
1
RabbitMQ之消息类型
理论知识
10
数据结构-单向链表
数据结构-双向链表、循环链
Http-头部属性
Http-状态码
其他术语
写时复制
存储单位
幂等性
TPS/QPS/PV/UV
进程、线程、协程
编程
202
Go
110
Gin框架
18
Gin框架(一):快速入门
Gin框架(十):日志使用(logrus+lumberjack)
Gin框架(十二):更多HTTP服务使用
Gin框架(三):路由初使用
Gin框架(四):路由组使用
Gin框架(五):参数接收
Gin框架(十一):验证器Validator使用
Gin框架(二):服务启动源码分析
Gin框架(六):参数绑定
Gin框架(九):BasicAuth授权认证中间件使用
Gin框架(七):文件上传
Gin框架(八):中间件
Gin集成(一):集成viper配置解析包
Gin集成(二):集成高性能日志zap
Gin集成(三):集成全功能ORM框架-GORM
Gin集成(四):集成JWT
Gin集成(五):集成Redis操作库
Gin集成(六):集成ElasticSearch操作库
基础篇
31
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
实战篇
6
基金分析系统(一):项目介绍
基金分析系统(三):爬取基金收益榜单
基金分析系统(二):通过数据模型建表
基金分析系统(四):爬取基金详情信息
基金分析系统(五):爬取基金持仓信息
基金分析系统(六):通过docker-compose项目部署
实践篇
5
框架开发(一):目录介绍和路由设计
框架开发(二):集成Gorm及使用
框架开发(三):集成Go-Redis及使用
框架开发(四):集成LogRus及使用
框架开发(五):集成Go-ElasticSearch及使用
常用包篇
36
Go常用包(十):viper配置文件解析
Go常用包(一):strings(字符串操作)包使用
Go常用包(十一):sort排序和查询
Go常用包(十二):rune字符操作包(unicode)
Go常用包(十三):Uber开源之高性能日志库(zap)
Go常用包(十四):高性能缓存库BigCache
Go常用包(十五):系统基本操作包使用(os)
Go常用包(十六):crypto之AES加解密
Go常用包(十七):crypto之RSA非对称加解密
Go常用包(十八):结构体匿名字段的Json序列化、反序列化
Go常用包(二):strconv(字符串转换)包使用
Go常用包(十九):全功能ORM框架[gorm]使用
Go常用包(二十):数学计算和常数(math)
Go常用包(二十一):360开源高性能excel库(Excelize)
Go常用包(二十二):JWT在Golang中的实现(jwt-go)
Go常用包(二十三):操作redis开源库(go-redis)
Go常用包(二十四):单元测试(testinng)
Go常用包(二十五):ElasticSearch客户端的实现
Go常用包(二十六):知名爬虫框架Colly
Go常用包(二十七):定时任务管理库Cron
Go常用包(二十八):构建现代CLI应用库Cobra
Go常用包(二十九):性能调试利器使用(上)
Go常用包(三):time(时间)包使用
Go常用包(三十):性能调试利器使用(中)
Go常用包(三十一):性能调试利器使用(下)
Go常用包(三十二):现代的Go工具库go-funk
Go常用包(三十三):高性能json解析器
Go常用包(三十四):高性能http客户端fasthttp
Go常用包(三十五):高性能的goroutine池[ants]
Go常用包(三十六):自动化文档生成[swagger]
Go常用包(四):fmt包使用
Go常用包(五):ioutil包使用
Go常用包(七):context上下文
Go常用包(六):bufio有缓存的IO包使用
Go常用包(八):sync辅助并发安全
Go常用包(九):flag命令行参数解析
进阶篇
14
Go底层探索(一):编译器
Go底层探索(二):字符串
Go底层探索(三):切片
Go底层探索(四):哈希表Map上篇
Go底层探索(五):哈希表Map下篇-扩容
Go底层探索(六):延迟函数defer
Go底层探索(七):并发编程[上]-协程的由来
RPC编程(一):初步了解RPC
RPC编程(二):快速入门使用
RPC编程(三):gRPC快速入门
RPC编程(四):protobuf语法学习
RPC编程(五):gRPC中的Token认证
RPC编程(六):gRPC中的TLS认证
RPC编程(七):gRPC中的截取器
Java
46
基础篇-数据类型及运算
基础篇-异常处理
基础篇-了解多线程
基础篇-初识Lambda
基础篇-Lambda操作集合
基础篇-Stream使用
基础篇-Collect方法详解
基础篇-Lambda操作Map
基础篇-FutureTask初使用
Java实践篇-使用Md5/Sha1/base64
基础篇-数组
基础篇-初始化块
基础篇-类
基础篇-注解
基础篇-泛型
基础篇-枚举
基础篇-集合
基础篇-map操作
Java实践篇-Api接口多版本控制
基础篇-抽象类和接口
SpringBoot学习(一):controller注解使用
SpringBoot学习(十):事务使用(@Transactional)
SpringBoot学习(十二):Mybatis连表(一对一)使用实践
SpringBoot学习(十三):Mybatis连表(一对多)使用实践
SpringBoot学习(十一):Mybatis批量插入数据
SpringBoot学习(十四):Mybatis连表(多对多)使用实践
SpringBoot学习(十八):SLF4J+Logback-日志使用
SpringBoot学习(十五):Mybatis多数据源实践
SpringBoot学习(十七):配置文件值注入
SpringBoot学习(十六):配置文件使用
SpringBoot学习(十九):初探Logback
SpringBoot学习(二):Swagger文档集成
SpringBoot学习(二十):Logback配置文件详解(上篇)
SpringBoot学习(二十一):Logback配置文件详解(下篇)
SpringBoot学习(二十二):约定编程模拟AOP的实现
SpringBoot学习(二十四):AOP之切点指示器
SpringBoot学习(二十三):AOP使用实践
SpringBoot学习(二十五):AOP之引入增强(@DeclareParents)
SpringBoot学习(二十六):AOP之多切面使用
SpringBoot学习(三):集成Mybatis
SpringBoot学习(四):集成Mybatis代码生成器(MyBatis Generator)
SpringBoot学习(五):验证器(hibernate-validator)使用
SpringBoot学习(六):集成阿里数据源(Druid)
SpringBoot学习(七):集成Redis并结合Spring Cache使用
SpringBoot学习(八):拦截器的使用
SpringBoot学习(九):验证码(EasyCaptcha)使用
PHP
11
开发compose包
PHP常用数组函数整理
PHP中的并发请求实践
搭建docker+PHP7+phpstorm+xdebug开发环境
基于laradock+phpstorm配置单元测试
PHP常用魔术函数整理
记一次在PHP中使用正则删除非汉字字符串
PHP常用字符串函数整理
基于laradock搭建非侵入式性能监控平台
PHP7更新变更差异整理
PHP-FPM配置详情及优化
Python
33
FastAPI框架
9
Python框架篇(1):FastApi-快速入门
Python框架篇(2):FastApi-参数接收和验证
Python框架篇(3):FastApi-响应模型
Python框架篇(4):FastApi-错误处理
Python框架篇(6):FastApi-配置管理
Python框架篇(5):FastApi-中间件使用
Python框架篇(7):FastApi-依赖项
Python框架篇(9):FastApi-SQLAlchemy集成
Python框架篇(8):FastApi-文件处理
基础篇
10
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
常用库
14
Python库学习(十):Matplotlib绘画库
Python库学习(一):日期和时间
Python库学习(十一):数据分析Pandas[上篇]
Python库学习(十二):数据分析Pandas[下篇]
Python库学习(十四):ORM框架-SQLAlchemy
Python库学习(二):数学计算(random、math、statistics)
Python库学习(四):json序列化和反序列
Python库学习(五):图像处理-Pillow
Python库学习(三):文件目录操作
Python库学习(六):科学计算库Numpy[上篇]:创建、访问、赋值
Python库学习(七):Numpy[续篇一]:结构数组
Python库学习(十三):爬虫框架-Scrapy
Python库学习(八):Numpy[续篇二]:数组操作
Python库学习(九):Numpy[续篇三]:数组运算
Vue
1
了解vue实例和生命周期
正则表达
1
正则使用
踩坑
5
Row size too large (> 8126) for mysql
服务-定时任务(crontab)使用总结
Mysql8采坑记录归纳
使用docker的采坑纪要
记录Git使用采坑纪要
运维
11
Nginx
3
Nginx反向代理使用
Nginx限流(防恶意请求)实践
Nginx配置调优
其他
1
批量更新多个服务器代码
命令
3
curl
ls
scp
服务
4
Centos-在Centos7中使用防火墙
Maven私服搭建(nexus3)和使用
记在Linux中搭建nfs文件共享的一次经历
RabbitMQ安装方法总结
面试题
4
PHP常见排序算法汇总
消息队列(MQ)相关面试题整理
PHP相关面试题整理
Redis相关面试题整理
标签
AI
AOP
Anaconda
Centos
ES
ElasticSearch
FastAPI
Gin
Go
Go入门
Go实战
Go实践
Go工具
Go底层
Go推荐包
Go编码规范
Go规范
Java
Java实践
Json
Jupyter
Kubernetes
Logback
MQ
Matplotlib
Mybatis
Mysql
Numpy
ORM
Pandas
Pillow
Python
Python框架篇
RPC
RabbitMQ
SQLAlchemy
Scrapy
SpringBoot
Vue
composer
文章
六月 2024
1
五月 2024
1
四月 2024
1
查看更多
网站资讯
文章数目 :
273
已运行时间 :
本站总字数 :
516.8k
本站访客数 :
本站总访问量 :
繁
本地搜索
由
hexo-generator-search
提供支持