自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ixuery的博客

记录&分享

  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 signintech/gopdf功能介绍与代码示例

使用golang生成pdf的代码示例

2022-12-08 19:23:02 1199 1

原创 gin+redis+websocket实现简单的消息推送

目录结构:websocket├── mq│ ├── redis.go│ └── redis_test.go└── main.gomain.gopackage mainimport ( "daily/websocket/mq" "fmt" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "github.com/sirupsen/logrus" "log" "net/http" "time")v

2022-04-17 00:21:59 3835 3

原创 解决viper读取yaml配置存在下划线时无法映射

适用场景:使用viper读取``yaml文件时候,遇到yaml文件中存在下划线,映射到结构体之后,结构体无法取到yaml`文件中对应的值。conf.yaml文件如下:mysql: rds_host: "rds_xxxxxx.com" rds_port: 3306config.go部分内容如下:type Mysql struct { RdsHost string `yaml:"rds_host" mapstructure:"rds_host"` RdsPort string `yaml:"r

2022-04-05 18:47:11 3386

原创 gopdf使用注意事项及常见问题

signintech/gopdf生成pdf使用注意事项及常见问题

2021-11-30 23:59:24 2096

原创 使用go语言生成PDF

go语言生成PDF最近由于工作需要,将之前用phantomjs生成PDF报告的部分重构(phantomjs在数据量较大时候,占用太高的服务器资源),改用go代码直接生成,在GitHub上搜索相关第三方库, 关键词:pdf language:Go,按照star排序如图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rZdlhOy2-1638114264294)(/Users/ellipses/Pictures/markdown/images/gopdf_github.png

2021-11-28 23:45:49 9355 9

原创 Docker修改已经创建的容器-宿主机IP和端口

需求:将slave1的PORTS的宿主机IP改为127.0.0.1,以实现端口仅对本机开放;[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES68d8338e3f96 mysql:5.7.

2021-09-20 16:07:59 2442

原创 Genbank的gbff格式转gff3格式(补充)

之前写过的Genbank的gbff格式转gff3格式的运行环境对于很多非计算机行业的同学不是很友好,在帮助一位网友处理格式转换之后,整理了下面这个python转换的方式:(注:本人的生物信息等知识还停留在高中水平,只是曾经帮助过同学处理过一个gbff格式转gff3的问题,所以纰漏之处,希望各位大神指出)python代码如下:# 导入依赖,如提示没有名为"xxx"的模块,pip安装即可,推荐使用python3.6以上from BCBio import GFFfrom Bio import SeqIO

2021-05-04 11:55:17 9919 19

原创 Django中使用163邮箱发送邮件

准备工作:准备一个用于发送邮件的邮箱,比如网易163邮箱;登录邮箱网页版,开通POP3/SMTP/IMAP功能;如下图:![image.png](https://img-blog.csdnimg.cn/img_convert/f2774ab076a8cef3250429b3a0029fbc.png#align=left&display=inline&height=956&margin=[object Object]&name=image.png&origin

2021-03-08 19:51:20 1709 5

原创 使用docker exec 进入容器报错“OCI runtime exec failed”

报错信息:OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "process_linux.go:78: starting setns process caused \"fork/exec /proc/self/exe: no such file or directory\"": unknown可能原因:可能是docker 守护进程出了问题,尝试重启dock

2021-03-06 17:57:18 3346 2

原创 mysql设置允许远程访问之后本地连不上

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)排查思路:远程登录进去,查看mysql库下的user表是不是存在User字段为空,密码为空,但是host为localhost的用户,如果有,删除然后刷新权限即可;查看mysql库下的user表是不是存在User字段为空,密码为空,但是host为localhost的用户:use mysql;SELECT * FROM user WHE

2021-01-21 20:21:16 585

原创 使用golang加密算法的示例

需求:先使用自定义的盐key对data进行sha1加密,然后对加密后的结果进行base64转码,再将转码后的结果转大写,最后再将转大写后的结果进行url编码:代码示例:package mainimport ( "crypto/hmac" "crypto/sha1" "encoding/base64" "net/url" "strings")// Sha1Encrypt sha1加密,base64转码,转大写,url编码func Sha1Encrypt(key, data stri

2020-12-17 20:02:10 344

原创 macOS升级到Big Sur之后Goland提示找不到svn命令

macOS升级到Big Sur之后Goland提示找不到svn命令注:理论上也适用于jetbrains公司的其他IDE,如Idea,PyCharm,WebStorm等;情景再现:macOS最近推送了Big Sur正式版本更新,更新之后,在goland等IDE中使用svn的时候,提示找不到svn命令,如图所示(我这里安装了翻译插件所以显示的是中文):解决方案:​ 在IDE中的svn工具填入本机的svn绝对路径;具体操作方法:打开IDE,按快捷键command+,进入到设置,搜索svn,如

2020-11-18 19:07:58 1268 1

原创 python常用排序算法

python常用排序算法import randomimport timeimport sysdef timer(func): """计时装饰器""" t1 = time.time() def wrapper(*args, **kwargs): res = func(*args, **kwargs) t2 = time.time() print(f'<{func.__doc__}>总耗时:{round((t2 -

2020-09-06 02:01:53 148

原创 Python-多任务之进程池

Python-进程池Poolimport timeimport osfrom multiprocessing import Poolstart = time.time()def handler(a, b): print("开始执行...") print(f"当前进程ID:{os.getpid()}") time.sleep(1) print("执行成功!") return a + bdef call_back_func(args): pri

2020-08-27 00:28:44 165

原创 python-多任务之多进程

多进程–multiprocessingmultiprocessing 是一个支持使用与 threading 模块类似的 API 来产生进程的包。 multiprocessing包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了 全局解释器锁。 因此,multiprocessing 模块允许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows上均可运行。multiprocessing 模块还引入了在 threading 模块中没有的API。一个主要的例子就是 Po

2020-08-26 21:32:14 158

原创 python--多线程和线程池

python多线程内建模块中的threading是_thread的丰富版,提供了创建线程和启动线程的方法# coding=utf-8import threadingimport timestart = time.time()print("主线程:", threading.current_thread())def handler(): print('处理中') print("子线程:", threading.current_thread()) time.sleep

2020-08-26 00:11:19 304

原创 golang使用gorm连接mysql数据库

官方文档:http://gorm.book.jasperxu.com/下载gorm包到本地go get go get -u github.com/jinzhu/gorm代码示例:package mainimport ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")func main() {db, err := gorm.Open("mysql", "root:mysql@tcp

2020-08-15 12:17:39 3292 1

原创 Python中操作redis数据库报“invalid expire time in set“

关于Python中操作redis数据库报"invalid expire time in set"的问题;可能是由于设置的过期时间为0或负数导致的。

2020-08-07 10:08:19 720

原创 MacOS报错xcrun: error: invalid active developer path...

MacBookPro10.15报错如下:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun问题出现的可能原因:卸载xcode导致,或者更新系统导致;解决办法:先使用:xcode-select --install如果使用这个指令报以下错误:xc

2020-06-29 20:03:50 270

原创 Genbank的gbff格式转gff3格式

使用方法:【以下操作适用于linux和 MacOS,windows暂未测试】适用场景:将GCA_genomic.gbff转为xxx.gff格式文件;如果是.gz的文件,比如:GCA_genomic.gbff.gz,需要先解压,linux解压命令:tar -zxvf GCA_genomic.gbff.gz;解压之后生成的文件名就没有.gz了。具体操作:确定脚本bp_genbank2gff3.pl所在的目录,比如这个脚本在/home/username/Download/目录下;使用perl执

2020-06-27 00:59:17 17481 27

原创 浅谈Python中的setter、getter、property

浅谈Python中的setter、getter、property​ 面向对象三个重要的特性:封装、继承、多态;​ 封装就意味着一个类或对象内部的属性或方法,不能随意被外部访问或者修改;java等语言中,可以在定义变量前面加上private来声明变量是私有变量,而python中没有关键字用于声明私有变量,但是约定俗成地使用双下划开头的变量作为私有变量;​ 比如下面的代码:class Person(object): def __init__(self, age, name):

2020-05-16 09:31:07 1656

原创 浅谈python垃圾回收机制

python垃圾回收机制理解一句话概括:引用计数为主,标记清除和分代回收为辅,另外还有缓存机制;基于C语言源码学习python(3.8.2)的垃圾回收机制;引用计数器标记清除分代回收缓存机制在学习python垃圾回收机制的C语言源码之前,需要知道一种数据结构,环状双向链表(refchain)。环状双向链表实现一个环形的双向链表,链表的每个节点都保存三个信息,当前节点的值value,前一个节点的指针prev,后一个节点的指针next。因为是环形的,所以最后一个节点的next指向第一个

2020-05-13 10:12:44 182

原创 go语言---爬虫入门

go语言—爬虫用到的包: net/http(用于发送请求), io/ioutil(用于读取响应内容);基本步骤:构建请求url, string类型;使用net/http包提供的Get()方法发送请求, 获取响应对象response;处理异常,解析响应内容;进阶步骤(适用于有反爬机制的网站):构建请求url,string类型;使用net/http包提供的Client{}结构...

2020-04-19 12:56:03 436

原创 解决VScode按!+Tab无法自动生成HTML模板(最新版方法见文末)

情景再现:使用新建一个文件,然后按+ 无法实现自动生成代码模板;解决办法:如果最近更新过版本,可能以上方法不再适用,请按照评论区置顶的方法,把之前输入的方法,改为输入再试试。在此感谢@jhhjhgf 等大佬提供的方法!............

2020-04-18 19:44:13 25830 130

原创 go语言---socket网络编程

go语言—socket网络编程(适合有基础计算机网络知识的)服务端总体思路:创建服务器地址;创建监听器;通过监听器监听客户端传递过来的数据;(这一步会阻塞)转换数据;关闭连接;// 这里是服务端代码package mainimport ( "fmt" "net")func main() { // 1. 创建服务器地址;(暂不处理错误信息) addr, _ :...

2020-04-11 19:12:17 163

原创 TCP的三次握手与四次挥手

术语解释:syn: 同步标识;fin: 结束标识;ack: 确认标识;psh: 有data传输;rst: 连接重置;seq: 数据包;三次握手三次握手示意图:三次握手文字描述:客户端发送SYN=1,SEQ=number(随机数字)报文给服务器端,客户端进入SYN_SEND状态;服务器收到SYN报文,SYN=1知道客户端要建立连接,响应ACK NUMBER(客户端的SE...

2020-04-11 18:31:40 83

原创 go语言---反射-reflect

go语言—反射reflect在go语言标准库中reflect包提供了运行时反射机制,所谓的运行时反射,就是程序运行过程中动态操作结构体;当变量存储结构体属性名称,想要对结构体这个属性赋值或查看时,就可以使用反射;反射还可以用作判断变量类型;reflect中最重要的两个类型:reflect.Type和reflect.Value;获取到Type和Value的函数: reflect.Type...

2020-04-06 23:04:44 225

原创 go语言---输出流Writer

go语言—输出流Writer输出流(Output Stream)就是将应用程序中的数据写出到外部资源;go语言中io包下的Writer接口表示输出流,只要实现这个接口就属于输出流;Writer的源码:type Writer interface { Write(p []byte) (n int, err error)}注意构建字节切片的时候如果需要读取文件,不要使用os.Open(...

2020-04-03 19:33:01 1369

原创 go语言---输入流Reader

go语言—ReaderReader即输入流,那么什么又是流? 流(stream)是应用程序和外部资源进行数据交互的纽带;流又分为输入流和输出流;这里的输入和输出都是相对于应用程序而言的,把外部资源输入到应用程序称之为输入流,反之为输出流;输入流即Input Stream,输出流即Output Stream,二者合称为I/O流;go语言中标准库的io包下Reader接口表示输入流,只要实现...

2020-04-03 19:30:38 771

原创 go语言---初识os模块

go语言的os模块os包有3个子包,分别是:exec,负责执行外部命令;signal,对输入信息的访问;user,通过名称或ID查询用户账户;os包下的File结构体既可以表示文件,也可以表示目录;package mainimport ( "fmt" "os" "os/user")func main() { u, err := user.Current() // 当前登...

2020-03-29 19:55:46 1221

原创 go语言---panic与recover

go语言中的panic和recoverpanic类似于其他编程语言中的throw或者raise,用于抛出异常;当执行到panic后终止执行剩余代码,并打印错误堆栈信息;panic并不是像os.Exit(0)一样立即停止程序的运行,panic如果有defer还是会被执行的;recover用于处理panic,一是返回panic的信息,二是恢复panic的状态;recover只能恢复当前函数...

2020-03-29 19:01:17 514

原创 go语言---defer

go语言的defergo语言中defer可以完成延迟功能,当前函数执行完成后再执行defer的代码块;defer常用于关闭文件,关闭数据库等;代码中如果有defer, 代码就可能不是按照顺序执行的,即使defer写在最前面,也可能会最后执行;("可能"用于多个defer的情况)多重defer采用栈结构执行,即先进后出,先产生的defer后执行;defer与return连用时,要把ret...

2020-03-29 17:48:56 505

原创 go语言---接口

go语言接口类型 interface接口是一组行为规范的定义;接口中只能有方法声明,方法只能有名称、参数、返回值,不能有方法体;每个接口中可以有多个方法声明,结构体把接口中所有方法都重写后,结构体就属于接口类型;重写的方法要求必须和接口中方法名称、方法参数(参数名可以不同)、返回值列表完全相同;接口可以继承接口,go语言推荐把接口中的方法拆分成多个接口;使用interface关键字来...

2020-03-29 17:46:24 383

原创 go语言---方法

go语言的方法:方法与函数语法基本类似,区别是函数属于包,通过包调用函数,包在物理层面上就是文件夹;而方法属于结构体,通过结构体变量来调用;方法在定义的时候需要指明这个方法属于哪个结构体;定义语法:func (变量名 结构体类型) 方法名(参数列表) 返回值列表 { 方法体}在使用结构体的方法时,如果需要改变结构体属性的值,需要在定义方法时,传递结构体的指针,也就是在结构体前面...

2020-03-29 12:29:37 142

原创 go语言---结构体及结构体指针

结构体(struct),是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。 (可以理解为其他编程语言中的类)结构体既可以定义在函数内,也可以定义在函数外,函数外为全局结构体可以跨包访问(前提是结构体首字母大写)结构体变量是值类型,可以使用fmt.Printf("%p", &结构体变量)来查看其内存地址;由于结构体是值类型,在方法传递时,希望传递的是结构体地址,这时就可以使...

2020-03-29 12:02:16 1964

原创 go语言---闭包

什么是闭包?闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。闭包包含自由(未绑定到特定对象)变量,这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包” 一词来源于以下两者的结合:...

2020-03-29 10:30:20 604

原创 go语言---函数

函数就是一段具有特定功能的代码块go语言中常用函数声明的格式:函数声明: func 函数名(参数列表) 返回值 { // 函数体}函数可以有参数,也可以没有参数,可以有返回值,也可以没有返回值;go语言中的引用类型: slice map channel interface func();传递的是地址;引用类型作为参数时,称为浅拷贝,形参改变,实参也跟随改变,因为传递的是地址...

2020-03-29 10:20:51 588

原创 go语言---goland开发环境设置

goland集成开发环境项目配置实际开发中,一个项目包含多个包,一个包又包含多个.go文件,一个.go文件里面包含多个函数或代码块;包的本质就是文件夹,同一个文件夹中多个文件的package必须相同,一般package和所在的文件夹名称相同;在goland中创建标准go项目:-- 项目名 -- src // 所有的源代码都存放到这个目录; -- 文件夹1 // 文...

2020-03-27 18:50:51 3108

原创 go语言---map容器

map容器map以散列表方式存储键值对集合map中每个元素都是键值对map[key]Value map中的key和value类型要和定义时候一致key是操作map的唯一标准,可以通过key对map中的元素进行增/删/改/查key是唯一的,添加已经存在的key会覆盖之前的元素map与数组一样,是值类型,只声明时为空指针(nil)map读写数据时并不是并发安全的,可以结合RWMute...

2020-03-26 23:12:47 541

原创 go语言---copy()函数

copy函数通过copy函数可以把一个切片内容复制到另一个切片中copy(目标切片, 源切片)拷贝时严格按照脚标进行拷贝package mainimport "fmt"func main() { copySlice() //copyDel() s13 := copyDelEle([]int {1, 2, 3, 4, 5, 6, 7, 8}, 2) fmt.Println...

2020-03-26 23:11:11 6932

get-pip2.7.py

pip安装,用于已有python2.7,但没有pip的情况下,下载后直接python get-pip2.7.py即可自动安装pip

2021-09-07

goland项目开发GOPATH配置.png

goland项目开发的GOPATH配置截图,用于markdown中链接的图片;打开goland,点击左上角File,再点击Settings,找到GO选项卡,双击,找到下面的GOPATH

2020-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除