自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 资源 (2)
  • 收藏
  • 关注

原创 django-admin开发经验总结

文章目录概述数据库连接与优化安装控件debug_toolbar配置基于simpleui的界面美化在菜单栏增加按钮通过django的模板渲染vue的页面根据不同角色(或参数)动态显示admin页面的内容生成自定义显示的字段自定义form表单重写小部件模板概述搞了好久的django开发,心理略有所得,在这里写一下自己的所得。django-admin是一个很强大的软件,对于我这种没有前端配合的人来...

2019-12-28 16:34:56 2171

原创 k8s部署nginx-ingress服务

把https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml下载下来。由于使用的内网搭建服务,所以选择一个节点作为nginx的启动节点。然后再创建ingress的时候,务必添加ingressClassName参数指向ingressClass对象。(如果先部署的ingress服务则不用配置)经过大佬的拷打,终于把这块的内容配置完成了。

2023-12-23 22:48:21 551

原创 记一次udp服务性能优化经历

手上有个go项目,接收udp信息(主要是syslog和snmp trap)并查询设备信息,将信息结构化(设备ip名称,匹配了什么规则之类的)后发送到kafka和es。本身项目是基于benshos进行开发的,但是整体性能并不那么让人满意,而且还存在丢包的问题(udp缓冲区拿数据太慢导致数据丢失了)。整个性能优化过程比较有意义,所以整理一篇文章记录下来。

2023-06-01 17:46:47 1059 1

原创 fast-tmp入门

fast-tmp是一个基于fastapi和tortoise的后台管理平台。类似于django-admin

2023-02-16 17:19:16 727 1

翻译 protobuf入门

protobuf协议2和3有一定的区别,但是可以混用(除了枚举)。注意:跟着的数字为对应消息的位置,一旦定义不要更改。关键字:singular: 默认字段,表示该类型字段可以有1个或0个该字段。optional: 功能与singular一样。(在proto2还有一个required,代表必须有该值,不过现在已经全部在初始状态赋值默认值了)repeated: 该字段可以重复0次到多次,相当于切片map: 键值对。reserved: 保留字段,可以防止某些字段被再次使用。在更新新功能时可以将某些字段/标识符保

2023-01-30 13:38:06 640

原创 cgo对go的性能影响

做go封装给python和perl进行使用的时候,使用cgo->swig->python、perl流程,对整个流程的性能进行了粗略的性能比较。另用原生go测试,时间也是3秒左右。和cgo调用差距不大。说明跨线程调用cgo的函数性能消耗是可以完全接受的。两个,测试,一是从python进入go的栈并退出整个流程的耗时,二是通过cgo发送http请求的流程耗时。没给具体值是我懒,,主要是python太慢了让我失去了精确耗时进行比较的兴趣。另外用c直接调用cgo生成的HttpGet函数,性能略微快一点。

2022-12-23 16:21:40 1338

原创 go python perl混合开发

使用cgo和swig将go的库一步一步封装为python、perl(或其他swig支持的,比如java)等语言的基础功能。

2022-12-20 14:04:17 852 1

原创 docker-compose部署fastapi+nginx+mysql

整个部署逻辑和django的部署比较相似,不过还是有一些不同的地方。首先,使用的python镜像不是官方的,而是fastapi作者准备的一个镜像,这个镜像可以自动读取服务器的cpu数量确认启动的workers数,这个镜像仅适合但服务器的docker部署,不适合k8s使用。

2022-12-16 14:22:37 727

原创 go基于泛型实现继承

下面是我基于go泛型实现的一个动态结构体,包含一些固定的基本字段以及一些动态字段。在某些需要直接从请求参数获取字段名并赋值的需求的时候,这个操作很有用。在某些情况下,我们需要继承的时候父类的函数和方法能够影响(或使用)子类的一些数据,这并不符合一般情况下的类原则,但是很有用。在go里面,我们通过组合实现继承,但是组合的类没办法操作同级别的类,解决方案是把操作方法提出来作为函数进行处理。对于有些情况下,明明是紧密耦合的函数,却不得不拆出来单独使用,还是让人很不爽。好在go的泛型能够解决这个问题。...

2022-07-28 11:07:28 786 1

原创 go实现快速排序

go实现快速排序

2022-07-26 10:28:48 130

原创 benthos杂记

benthos杂记

2022-07-20 18:09:44 600

原创 bloblang教程入门

benthos的bloblang语法入门

2022-07-12 14:17:46 675

原创 benthos搭建syslog转发模块

这是一个benthos的示例,主要是体现了broker在输出的时候的运用,以及一些数据中间情况处理的逻辑。从514端口监听得到syslog日志,对日志日志等级低于notice的(debug等)进行过滤,并通过kafka、syslog转发,并写入到本地syslog文件中。...

2022-07-11 15:38:51 521

原创 sql.NullTime支持json输出优雅格式的解决方案

当使用一个结构体,这个结构体同时需要对应数据库模型以及输出模型的时候,如果时间字段在数据库不为空,我们只能使用sql.NullTime来对应这个时间。但是,这样在输出的时候就会很丑陋(大概是这样的)我们希望达到的效果是,如果为空,输出是,如果不为空,直接输出时间。如何实现这个效果呢,我们只需要重写一下NullTime即可注意如果你想实现没有时间的时候是nil,有时间是时间,应该使用 *NullTime.当然,这里可以使用 time.Time来替换???我不清楚用time.Time会不会在数据库无法写

2022-07-06 11:48:40 833

原创 如何安装 docker-credential-secretservice

sudo apt install golang-docker-credential-helpers参考 https://github.com/pgRouting/docker-pgrouting/issues/11

2022-03-24 14:01:36 845 1

原创 搭建python的docker容器+gcc

搭建python的docker容器如下FROM python:3.7-alpine # alpine容器比较小# 修改软件源,也可以用阿里的(不过我阿里的没成功RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories)RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories # 安装gcc,

2022-03-18 15:07:58 1706

原创 opentelemetry+jaeger python版本跨服务调用示例

opentelemetry python版本跨服务调用

2022-03-14 18:30:37 5618

翻译 rfc7752有道翻译

使用BGP的链路状态和流量工程(TE)信息的网路分布摘要在许多环境中,需要调用网络外部的组件来执行基于网络拓扑结构和网络内连接的当前状态的计算,包括流量工程(Traffic Engineering, TE)信息。这是通常由IGP路由协议在网络中分发的信息。本文档描述了一种通过BGP路由协议从网络中收集链路状态和TE信息并与外部组件共享的机制。这是通过一种新的BGP网络层可达性信息(NLRI)编码格式实现的。该机制适用于物理和虚拟IGP链路。所描述的机制受策略控制。该技术的应用包括应用层流量优化(A

2021-11-05 14:40:50 484

转载 OSPFv3协议

OSPFv3协议ospf协议主要为ipv6里,内部路由器之间的内部网关协议,主要用于内部各路由器之间同步路由信息和生成最优路径。OSPFv3分为5种报文:Hello报文: 建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。DD报文LSR报文LSU报文LSAck报文报文头格式字段长度含义Version1字节版本,OSPF的版本号。对于OSPFv3来说,其值为3。Type1字节类型,

2021-11-01 15:49:11 1554 1

原创 Golang模块使用入门

go模块指令go mod init创建一个新模块,初始化go.mod描述它的文件。go build、go test和其他包构建​​命令go.mod根据需要添加新的依赖项。go list -m all 打印当前模块的依赖项。go get 更改依赖项的所需版本(或添加新的依赖项)。go mod tidy 删除未使用的依赖项。go list -m -versions 模块名(查看某模块的所有版本)。注意:golang允许使用同一个模块的不同大版本,比如v1和v2等,这样方便进行代码逐步迁移(这功能

2021-08-24 12:02:56 957

原创 fastapi项目部署与golang性能粗略对比(娱乐模式)

目录概述配置poetry完成Dockerfile文件完成docker-compose文件启动项目概述fastapi部署主要依赖于gunicorn以及自动化的弹性扩容。依赖fastapi作者编写的镜像文档。整体思路如下:完成poetry环境搭建完成Dockerfile文件完成docker-compose(也可以不使用docker-compose)启动docker-compose配置poetrypoetry是一款python包管理工具,类似于pipenv或者venv。具体的使用教程请参考百

2021-08-10 10:20:52 3352 4

原创 fastapi+tortoise单元测试

文章目录概述示例基础测试类测试代码编写conftest.py修改tortoise-orm代码里面的bug执行测试获取代码覆盖率概述之前写过一次单元测试的文章,这次主要是完成一部分新的更简洁明了的测试。整个测试现在非常方便示例基础测试类首先我们要有一个基础的测试类,例如:import randomfrom fast_tmp.models import Userfrom httpx import AsyncClient, Responsefrom tortoise.contrib.test

2021-05-07 17:30:44 701

原创 jenkins插件下载加速

jetbrains插件下载加速jetbrains插件国内镜像源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/另:代理没什么用,开了代理啥也做不了。。

2021-04-21 09:14:29 1120 1

原创 sqlalchemy ^1.4异步操作指南

目录概述基本的操作方式查询基本查询级联查询预加载字表联合查询查询函数func概述本文章主要用于sqlalalchemy 2.0系列操作数据库风格的数据库操作指南。本文主要分为两类,查询,删除,杂项(主要为删除等等)另:本文主要为orm的操作方式,core的操作方式可以参考。基本的操作方式基本操作方式如下(这只是其中一种操作方式,):from sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.asyncio import AsyncSe

2021-02-17 11:43:00 6189 17

原创 gitlab自动触发jenkins通过ssh部署测试服务

文章目录概述搭建环境1服务器准备好一个可以远程登录的root账户2jenkins安装插件3jenkins配置远程服务器的登录信息配置gitlab钩子概述这个方案是我琢磨了好久,唯一成功实现的方法。。。主要思路如下:准备一个部署测试服务的服务器(注意一定要是server版本的,,不然一会会出现权限错误)通过gitlab配置webhook在代码更新的时候自动给jenkins发送消息jenkins配置gitlab获取消息之后通过ssh连接服务器通过docker-compose进行部署参考:h

2021-01-29 14:28:55 303

原创 rancher+jenkins+sentry

文章目录概述安装rancherjenkinssentry概述由于业务需要,需要安装rancher+jenkins+sentry。最开始我打算用rancher安装jenkins和sentry,后来发现这样做不太好(其实是根本没弄成),最后还是决定单独用docker跑吧。安装rancher这个安装很简单,直接用docker拉起来就行了(高可用请查看官方文档)官方文档:https://docs.rancher.cn/docs/rancher2/quick-start-guide/deployment/q

2021-01-29 10:13:51 428

原创 fastapi+tortoise-orm测试

概述fastapi+tortoise的测试比较奇葩,tortoise-orm的测试需要传递event_loop,fastapi的异步测试不能直接访问,就算使用httpx的异步功能也不行(因为不会主动调用startup和shutdown)。解决方案:tortsoie-orm的测试解决方案是通过传递event_loop的方式,自己主动激活数据库(当然顺便创建测试数据库等一系列功能),但是没都要通过event_loop.run_until_complete执行实在是有点难看。我的解决方案:自己初始化数

2021-01-21 13:57:50 1722 1

原创 通过蒲公英组件异地内网服务

概述由于开发需要,现在需要把处于内网的服务器和不同网段的主机搭建一套内网系统。通过蒲公英能达到相关的效果。实现步骤:注册账户安装蒲公英,启动服务注册账户到蒲公英官网注册账户(千万要注意网址,我就被坑了60块钱。)网址:https://pgy.oray.com/download/进入网址,注册自己的账户,先使用免费版测试一下。安装蒲公英windows安装先在windows开发机安装,直接下载安装即可。linux安装建议使用docker安装(主要是linux没法启动远程桌面)。

2021-01-08 12:36:36 530

转载 sqlalchemy延迟加载

文章目录概述lazyload()joinedload()subqueryload()selectinload()raiseload()noload()结论概述参考:https://blog.csdn.net/u012324798/article/details/103940527sqlalchemy对字表加载有好几种方法,主要有两类:立即加载和延迟加载。关系加载的主要形式是:lazyload()延迟加载 -可通过 lazy=‘select’ 或 lazyload() 选项实现。这是默认的加载方

2021-01-07 00:10:12 1370

原创 alembic入门

文章目录概述初始化alembic修改配置文件生成迁移文件更新数据库其他参数概述参考来源:https://www.jianshu.com/p/394e6453a6b0由于tortoise-orm的使用体验并不友好,所以我切换到了sqlalchemy进行开发。sqlalchemy数据库orm模式迁移大概流程如下(core和orm有区别):初始化alembic安装:poetry add alembic切换到虚拟机,执行alembic init alembic修改配置文件修改alembic

2021-01-06 19:17:00 427

原创 tortoise-orm的一些坑

概述本文主要记录使用tortoise-orm遇到的一些坑tortoise-orm的官网上面有很多的实例,但是使用的时候还是会遇到一些问题。pydantic_model_creator 字段不全问题如果使用pydantic_model_creator创建model,会遇到字段显示不完全,外键和多对多全部都没有。解决方案:在调用该方法之前需要先进行激活model,大致方法如下:stAPI(debug=settings.DEBUG) # 这一步不会真的访问数据库 Tortoise.init

2021-01-02 11:46:48 4813 1

原创 fastapi序列化器

概述fastapi的的序列化相关的只是比较杂乱,而且不像drf,有一个集中的序列化器管理函数get_serializer_class,fastapi没有基于类的view,自然序列化器也比较散乱。输入和输出的序列化fastapi的序列化器主要是通过pydantic的BaseModel创建而来。还有一些其他地方可以创建对应的序列化器(比如tortoise-orm的pydantic_model_creator和pydantic_queryset_creator),再加上一些其他的可以管理输入输出参数的控制变

2020-12-04 23:57:15 2420

原创 fastapi--捕捉422报错并进行本地化处理

文章目录概述解决方案ExceptionHTTPExceptionRequestValidationError解决方案概述fastapi如果pydantic对输入数据验证出现不符合的情况,默认情况下会以422的格式返回。但是说实话这个格式实在是太丑。最主要的原因是很可能不符合大家前后端交互的错误类型。当然返回内容不是中文也很重要。(这种事交给前端的话前端大概会打死我)解决方案在初始化app的时候,可以增加自定义的报错。目前fastapi很贴心的支持三种报错捕捉和替换默认处理。Exceptio

2020-12-03 00:10:04 11205 1

原创 django的filter __in失效bug

今天偶遇一个bug,model.objects.filter(id__in=list)报错__init__()缺少name和另外一个字段。解决方案,把list里面的值都换成str格式的就好了(之前是int)

2020-11-27 09:11:09 1117

原创 drf序列化器多对多字段的写入和返回解决方案

文章目录概述代码如下概述最近遇到一个奇葩的问题,user在修改的时候需要修改多对多的groups字段,要求写入数据和读取数据的时候字段都是groups。最开始想的是用自定义返回值的那个序列化字段,但是发现不能写入数据,就很烦。。如果直接用groups,返回的时候会报错。想了很久,最后发现,在返回序列化的时候,读取到的其实是group的manager类,我只要把返回字段的读取数据的方法重构一下就可以实现groups的正确写入和读取了。代码如下from restframework.serializ

2020-11-24 16:40:55 1424

原创 手机投影到deepin

概述由于手机屏幕太小,影响我看电视,但是我没有外网,只能使用手机的免流量app看电视,所以我查了半天找到这么个解决办法。系统:deepin v20使用工具:adb和qtscrcpy安装工具安装adbadb主要是安卓系统调试工具。安装adb:sudo apt install android-tools-adb安装qtscrcpy安装方式:应用商店下载。在这里插入图片描述启动项目连接手机把手机启动开发人员模式把手机启动用usb连接到电脑(其实也可以用蓝牙)操作如下:然后就o

2020-11-22 17:37:55 1102

原创 deepin系统入门记录

文章目录概述三系统安装软件安装python下载源码安装依赖包安装python安装重要依赖包概述本文主要讲解我初步使用deepin系统的部分坑和注意事项。背景:电脑为小米游戏本pro,早期版本。(所以买电脑还是要买大厂的,至少支持比较多吧)三系统由于电脑已经安装了win10和ubuntu18,然后安装deepin的时候,照常出现了win10驱动引导丢失的问题。但是这次很严重,以往我都是用u启动的pe盘修复,这次居然修复不了。解决方案,使用优启通制作pe盘,利用里面的修复工具修复即可。但是有个问题

2020-11-22 13:40:35 433

转载 drf-树形结构的model的序列化显示

目录概述概述来源:https://stackoverflow.com/questions/13376894/django-rest-framework-nested-self-referential-objects最近开发的时候遇到一个有意思的东西,需要组织架构,然后组织架构是树状的,需要返回组织架构的树。百度上查到两种方法方法一:这种方法完全看不懂是啥,但是就是能用,难以理解。首先,定义您的可重用RecursiveField类class RecursiveField(serializers

2020-11-21 11:17:58 1073

原创 临时离线环境的django开发环境搭建

文章目录概述环境描述安装python安装包下载包安装包安装mysql等安装离线gitlab设定自动化脚本测试概述由于之前工作关系,一直没有什么可以写的东西。害我差点丢了更新csdn的好习惯。好久没更新新东西了,先来一篇最近用到的吧。这篇文章只是提供一个python内网环境的搭建思路,具体的细节还需要各位读者自己去琢磨。以linux为例环境描述纯内网,不允许连接到外网,但是可以使用光盘拷贝内容到服务器。临时开发环境,搭建自己的离线pypi镜像有点得不偿失。(如果有需要可自行百度)安装pytho

2020-11-15 23:16:16 598

原创 rust-异常机制

文章目录概述错误类型不可恢复错误可恢复错误概述这是一个新坑,rust目前还是一门很新的语言。但是其语法和设计思想非常吸引我,让我在学习c++掉头发的那一会有了一些新的选择。rust的性能非常高,且内存管理非常严格,适合用来编写操作系统的大型软件工程项目。本文主要记录rust的异常处理机制。错误类型rust创造性的将报错分为两类,可恢复错误和不可恢复错误。可恢复错误就是我们能够在代码层面解决的意料之内的错误,不可恢复错误就是我们无法解决的错误。(说实话我觉得这个分类略显智障)可恢复错误的返回:Re

2020-08-29 14:10:41 1166

ensp安装包.zip

ensp安装包(包括所有需要的组件) 包括安装指南

2021-09-16

fastapiStudy.zip

fastapi模板,请参考https://blog.csdn.net/weixin_36179862/article/details/106943367

2020-06-24

空空如也

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

TA关注的人

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