自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 go-zero后端返回函数封装

gozero后端返回封装函数

2023-08-13 23:46:36 195

原创 grpc-gateway配置2

grpc-gateway网关配置反向代理

2023-08-09 00:26:13 242

原创 grpcGateway配置

grpc-gateway

2023-08-09 00:07:20 268

原创 Nginx部署vue项目配置

【代码】Nginx部署vue项目配置。

2023-03-16 16:39:20 2427

原创 Go语言中的字符串

字符串字符串是 Go 语言中的基础数据类型,虽然字符串往往被看做一个整体,但是它实际上是一片连续的内存空间,我们也可以将它理解成一个由字符组成的数组,本节会介绍字符串的实现原理、转换过程以及常见操作的实现。1.字符串它实际上是由字符组成的数组,Go 语言中的字符串只是一个只读的字节数组,下图展示了 “hello” 字符串在内存中的存储方式:只读只意味着字符串会分配到只读的内存空间,但是 Go 语言只是不支持直接修改 string 类型变量的内存空间,我们仍然可以通过在string 和 []byt

2021-03-31 00:24:42 1760

原创 Go语言中的下划线

1. 下划线“_”是特殊标识符,用来忽略结果。1.1.1. 下划线在import中在Golang里,import的作用是导入其他package。import 下划线的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import 引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。 示例:impo

2021-03-30 23:49:39 322

原创 Go基础数据结构--哈希表Map

前言Go 语言的哈希的实现原理,哈希是除了数组之外,最常见的数据结构。几乎所有的语言都会有数组和哈希表两种集合元素,有的语言将数组实现成列表,而有的语言将哈希称作字典或者映射。无论如何命名或者如何实现,数组和哈希是两种设计集合元素的思路,数组用于表示元素的序列,而哈希表示的是键值对之间映射关系。1.map定义map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。Go语言中 map的定义语法如下:map[KeyType]ValueType注解:K

2021-03-12 00:31:47 521

原创 GO高效读取配置--学习笔记

读取配置信息demo首先,我们需要在任意目录创建两个文件(my.ini 和 main.go)1.编辑 my.ini 文件并输入以下内容# possible values : production, developmentapp_mode = development[paths]# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)data = /home[se

2021-03-11 00:37:09 271

原创 Go项目热重启工具

安装go get -u github.com/cosmtrek/air创建配置文件在项目根目录创建一个名为 .air.conf 的配置文件。创建完毕之后,在文件中写入你应用运行的命令如:go build main.go运行项目只需要在项目根目录执行如下命令:air -c .air.conf如果你的配置文件是 .air.conf 那么你只需要运行 air 就可以了。项目运行后,我们再次编辑项目中的文件,项目的服务会自动重启了。...

2021-03-11 00:26:59 247

原创 python调用SCP向服务器上传文件

将指定目录的文件上传到服务器指定目录直接上代码:import paramiko # 用于调用scp命令from scp import SCPClient# remote_path远程服务器目录# file_path本地文件夹路径# img_name是file_path本地文件夹路径下面的文件名称def upload_server(ip,username,password,img_name, remote_path, file_path):

2021-03-11 00:14:35 761 1

原创 Flask实现文件上传

Flask实现文件上传直接上代码# -*- coding: utf-8 -*-import osfrom flaskimport Flask, requestfrom flask_uploads import UploadSet, configure_uploads, IMAGES,patch_request_classapp = Flask(__name__)app.config['UPLOADED_PHOTOS_DEST'] = os.getcwd() # 文件储存地址photos

2021-03-11 00:11:53 116

原创 flask蓝图

简介:本篇文章简单介绍flask蓝图的简介和使用。不可能在app.py中注册所有的应用,通过使用蓝图可以将各个应用的分隔开来,增加代码可读性,降低其耦合度。Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法。一个 Blueprint 对象与 Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的 蓝图 。缺点:1. 蓝图是模

2021-03-11 00:07:34 111

原创 flask跨域

简介当调用服务端的域名与服务端不一致(前后端分离)的时候会出现跨域问题,可使用Flask-Cors解决以上问题安装pip install flask-cors使用from flask_cors import CORSfrom flask import Flaskapp = Flask(name)@app.route("/")def hello():return “你好”if name == “main”:CORS(app, supports_credentials=True)ap

2021-03-11 00:03:16 99

原创 Flask-restful笔记2

Flask-restful对于一个视图函数,你可以指定好一些字段用于返回。以后可以使用ORM模型或者自定义的模型的时候,他会自动的获取模型中的相应的字段,生成json数据,然后再返回给客户端。这其中需要导入flask_restful.marshal_with装饰器。并且需要写一个字典,来指示需要返回的字段,以及该字段的数据类型。示例代码如下:class ProfileView(Resource): resource_fields = { 'username': fields.S

2021-03-10 23:59:22 81

原创 学习笔记之:python操作SQLALchemy

ORM介绍:Python中最有名的ORM架构就是SQLAlchemy,ORM:Object Relationship Mapping对象模型与数据库表的映射。安装:pip install SQLAlchemy安装mysql:yum install mysql-server mysqlservice mysqld restartsysctmctl restart mysql.service将ORM模型映射到数据库中:用declarative_base根据engine创建一个ORM基类。fro

2021-03-10 23:49:18 1708

原创 python操作memcached

常用命令操作Linux系统安装memcached,首先要先安装libevent库sudo apt-get install libevent libevent-deve安装 Memcached:sudo apt-get install memcached运行启动Memcached:service memcached start查看memcached启动进程:ps aux|grep memcachedmemcached常用命令:命令:/usr/bin/memcached -m 1024 -u

2021-03-10 23:30:34 453

原创 学习笔记之:Redis数据库基础篇(二)

RDB同步机制:开启和关闭:默认情况下是开启了。如果想关闭,那么注释掉redis.conf文件中的所有save选项就可以了。同步机制:save 900 1:如果在900s以内发生了1次数据更新操作,那么就会做一次同步操作。save 300 10:如果在300s以内发生了10数据更新操作,那么就会做一次同步操作。save 60 10000:如果在60s以内发生了10000数据更新操作,那么就会做一次同步操作。存储内容:具体的值,而是命令。并且是经过压缩后存储进去的。存储路径:根据redi

2021-03-10 23:22:59 102

原创 学习笔记之:Redis数据库常用操作

Redis安装Linux下安装Redis命令:$sudo apt-get update$sudo apt-get install redis-server启动 Redis$redis-server或者service redis start查看端口进程:netstat -tulnp例如:ps aux|grep redis停止Redis服务命令:/etc/init.d/redis-server stop重启Redis服务命令:/etc/init.d/redis-server start

2021-03-10 23:21:07 171

原创 Golang内置类型和函数--学习笔记

内置类型1.1. 值类型:boolint(32 or 64), int8, int16, int32, int64uint(32 or 64), uint8(byte), uint16, uint32, uint64float32, float64stringcomplex64, complex128array – 固定长度的数组1.2. 引用类型:(指针类型)slice – 序列数组(最常用)map – 映射chan – 管道1.3 内置函数Go

2021-03-10 01:11:05 245

原创 Go基础数据结构--切片

1.切片Slice上一节介绍的数组在 Go 语言中没那么常用,更常用的数据结构是切片,即动态数组,其长度并不固定,我们可以向切片中追加元素,它会在容量不足时自动扩容。在 Go 语言中,切片类型的声明方式与数组有一些相似,不过由于切片的长度是动态的,所以声明时只需要指定切片中的元素类型:[]int[]interface{}1.0 切片数据结构type SliceHeader struct { Data uintptr Len int Cap int}Data 是指向数组的指针

2021-03-10 00:57:05 714

原创 Go基础数据结构--数组Array

1. 数组数组和切片是 Go 语言中常见的数据结构,很多刚刚使用 Go 的开发者往往会混淆这两个概念。数组作为最常见的集合在编程语言中是非常重要的,除了数组之外,Go 语言引入了另一个概念 — 切片,切片与数组有一些类似,但是它们的不同导致了使用上的巨大差别。Golang Array和以往认知的数组有很大不同1. 数组:是同一种数据类型的固定长度的序列。2. 数组定义:var a [len]int,比如:var a [5]int,数组长度必须是常量,且是类型的组成部分。 一旦定义,长度不能变

2021-03-10 00:22:50 888

原创 交叉编译Go语言程序

交叉编译Go 支持跨平台编译列如:在windows平台编译一个能在linux平台执行的可执行文件set CGO_ENABLED=0 # 禁用CGO 值为1表示不禁用set GOOS=linux # 设置目标平台为linux / windowsset GOARCH=amd64 # 设置目标处理器架构是amd64执行go build 生成linux平台运行的可执行文件mac平台交叉编译:set CGO_ENABLED=0 set GOOS=linux set GOARC

2021-03-04 23:58:51 235 1

原创 Flask-Restful参数验证

参数验证Flask-Restful 插件提供了类似WTForms来验证提交数据是否合法的包,叫做reqparse.以下是基本用法:‘’’parser = reqparse.RequestParser()parser.add_argument(‘username’, type=str, help=‘请输入用户名’)args = parser.parse_args()‘’’add_argument可以指定这个字段的名字,这个字段的数据类型等。以下将对这个方法的一些参数做详细的讲解:1. de

2021-03-02 02:28:20 1017

原创 Flask-Restful笔记

Flask-Restful安装:Flask-Restful需要在Flask 0.8以上的版本,在Python3.3上运行。通过pip install flask-restful即可安装。基本使用:从flask_restful中导入Api,来创建一个api对象。写一个视图函数,让他继承自Resource,然后在这个里面,使用你想要的请求方式来定义相应的方法,比如你想要将这个视图只能采用post请求,那么就定义一个post方法。使用api.add_resource来添加视图与url。示例代码如下

2021-03-02 02:25:28 161

原创 Go垃圾收集器

内存管理内存管理一般包含三个不同的组件,分别是用户程序(Mutator)、分配器(Allocator)和收集器(Collector)1,当用户程序申请内存时,它会通过内存分配器申请新的内存,而分配器会负责从堆中初始化相应的内存区域。 一、内存分配器线性分配(Bump Allocator)是一种高效的内存分配方法,但是有较大的局限性。空闲链表分配器(Free-List Allocator)可以重用已经被释放的内存,它在内部会维护一个类似链表的数据结构。 当用户程序申请内存时,空闲链表分配器会依次遍历空闲的内

2021-03-02 02:21:06 196

原创 GO语言HTTP

HTTP超文本传输协议(Hypertext Transfer Protocol、HTTP 协议)设计原理HTTP 协议是应用层协议,在通常情况下我们都会使用 TCP 作为底层的传输层协议传输数据包,但是 HTTP/3 在 UDP 协议上实现了新的传输层协议 QUIC 并使用 QUIC 传输数据,这也意味着 HTTP 既可以跑在 TCP 上,也可以跑在 UDP 上。HTTP 与传输层协议Go 语言标准库通过 net/http 包提供 HTTP 的客户端和服务端实现, 作为文本传输协议,HTTP 协议

2021-03-02 02:19:08 574

原创 GO语言JSON

JSON设计原理Go 语言通过 encoding/json 对外提供标准的 JSON 序列化和反序列化方法,即 encoding/json.Marshal 和 encoding/json.Unmarshal,它们也是包中最常用的两个方法。序列化和反序列化序列化和反序列化的开销完全不同,JSON 反序列化的开销是序列化开销的好几倍,相信这背后的原因也非常好理解。Go 语言中的 JSON 序列化过程不需要被序列化的对象预先实现任何接口,它会通过反射获取结构体或者数组中的值并以树形的结构递归地进行编码,标准

2021-03-02 02:16:34 322 1

原创 git基本操作

* git是版本控制工具仓库github国外服务器, 国际知名度高, 私有仓库收费参与他人项目将他人的项目fork到自己的github中, 然后修改之后,通过request pull,看他人是否接受你的修改.码云(gitee)国内服务器, 快, 私有仓库免费, 容量有限* git搭建安装sudo pacman -S git自报家门git config --global user.name “Your Name”git config --global user.em

2021-03-02 02:14:16 71

原创 nginx和uwsgi学习笔记

uWSGI安装:pip install uwsgi配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置:[uwsgi]socket=外网ip:端口号(使用nginx请求连接时,使用socket)#http=127.0.0.1:8000(直接做web服务器,使用http)chdir=项目根目录wsgi.file=项目中wsgi.py文件的目录,相对于项目根目录processes=4threads=2master=Truepidfile=uwsgi.piddaemonize=

2021-03-02 02:10:10 154

原创 pandas绘图函数

pandas中的绘图函数1.Series.plot方法的参数:label —>用于图例的标签ax —>要在其上进行绘制的matplotlib subplot对象。style —>将要传给matplotlib的风格字符串(如‘ko–’)alpha —>图标的填充不透明度(0到1之间)kind —>可以是‘line’、‘bar’、‘barh’、‘kde’logy —>在Y轴上使用对数标尺use_index —>将对象的索引用作刻

2021-03-02 02:06:19 1173

原创 pandas学习笔记二

时间序列pd.to_datetime() # 字符串 转 datetime基本操作列del //删除列drop //删除指定index //也能删除列索引loc //行和列的索引iloc //整数的行列索引算数df1 + df2df1.add(df2, fill_vlaue=0) //没重叠的用0填充subdivmulpowstd //方差函数应用frame.apply(func) //每一列或每一行执行该函数

2021-03-02 02:04:12 138

原创 Pandas速查手册中文版API

创建测试对象pd.DataFrame(np.random.rand(20,5)):创建20行5列的随机数组成的DataFrame对象pd.Series(my_list):从可迭代对象my_list创建一个Series对象df.index = pd.date_range(‘1900/1/30’, periods=df.shape[0]):增加一个日期索引导出数据df.to_csv(filename):导出数据到CSV文件df.to_excel(filename):导出数据到Excel文件df.t

2021-03-02 01:55:43 341

原创 Golang:Delve版本太低无法Debug

问题描述分析这是因为本地delve组件版本过低导致的,2019.2.1版本的Goland默认支持go 1.13查看F:\Go (GOPATH目录)目录下存在github.com/go-delve/delve/cmd/dlv,而且bin目录下也存在dlv.exe文件,用命令行执行 dlv.exe version得到的版本是1.2.1解决办法更新dlv因为本地已经存在,所以,需要用到-u参数,强制更新包以及依赖go get -u github.com/go-delve/delve/cmd/

2020-11-15 21:48:01 1214

原创 Docker命令操作大全

Docker服务相关的命令:systemctl start docker # 启动dockersystemctl status docker # 查看docker状态systemctl stop docker # 停止dockersystemctl restart docker # 重启 dockersystemctl enable docker # 设置开机启动dockerDocker镜像相关的命令:docker images # 查看本地所有的镜像do

2020-09-02 22:37:48 318 1

原创 Docker数据卷笔记

数据卷简介1.数据卷是宿主机中的一个目录或文件2.当容器目录和数据卷目录绑定后,对方的修改会立即同步3.一个数据卷可以被多个容器同时挂载4.一个容器也可以被挂载多个数据卷数据卷的作用:1.容器数据持久化2.外部机器和容器间接通信3.容器之间数据交换配置数据卷:创建启动容器时,使用-v参数设置数据卷docker run -it -v 宿主机目录(文件):容器内目录(文件) …创建一个容器,挂载一个目录,让其他容器继承自该容器(–volume-from)使用数据卷:方式一:直接使用

2020-09-02 22:37:10 94

原创 Docker网络原理笔记

初识Docker网络Docker中所有的网络接口都是虚拟的。虚拟的转发效率高~!通过"–link"命令建立两个容器间网络相互连通–link 原理就是我们在hosts配置中增加一个 IP tomcat02 容器ID hosts映射自定义网络配置自定义网络可以通过容器名ping通,不使用"–link",自定义网络已经帮我们维护好了对应的关系,推荐使用自定义网络配置Docker容器和网络进行连通:假设要跨网络操作别人,就需要使用docker network connect 连通.

2020-09-02 22:36:45 76

原创 Flask 高并发部署方案flask+nginx+gunicorn

用过 Flask 框架的朋友都知道,Flask 自带的 wsgi 性能低下,不支持高并发。只适合你开发调试的时候用,所以在线上一般都使用 Nginx + gunicorn 才能获得更强的性能和更高的安全性!gunicorn 是一个 python Wsgi http server,只支持在 Unix 系统上运行,下面我们来熟悉一下以 gunicorn 的配置与使用。一、gunicorn 的安装注意 gunicorn 不能在 windows 环境下使用pip install gunicorn比如有以

2020-09-02 22:34:59 2454 1

原创 Flask 高并发部署

Flask 处理高并发、多线程前言:使用flask做服务时,可以使用python run.py的方式运行,但是这样不能用于生产环境,可能会出现连接无响应的情况。后来通过查找资料,发现flask服务处理多线程、高并发的一下方法,主要有一下几个方面:1.通过设置app.run()的参数,来达到多线程的效果,具体参数:1.threaded : 多线程支持,默认为False,即不开启多线程;app.run(threaded=True)2.processes:进程数量,默认为1.app.run(proc

2020-09-02 22:33:34 1809

原创 解决UnicodeEncodeError报错

解决报错:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 21-23: ordinal not in range(128)在启动文件加入下面代码:import sysimport codecssys.stdout = codecs.getwriter(‘utf-8’)(sys.stdout.detach())

2020-09-02 22:30:22 277

原创 DockerFile文件编写

DockerFile介绍DockerFile是用来构建Docker镜像的文件! 命令参数脚本!构建歩鄹:1、编写一个DockerFile文件2、docker build构建成为一个镜像3、docker run 运行镜像4、docker push 发布镜像(可以发布到:DockerHub\阿里云镜像仓库!)DockerFile是面向开发的,我们以后要发布项目,做镜像,就需要编写DockerFile文件。Docker镜像逐渐成为企业交付的标准,必须掌握!DockerFile的指令

2020-08-16 22:46:51 595

空空如也

空空如也

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

TA关注的人

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