- 博客(59)
- 收藏
- 关注
原创 SQLAlchemy修改postgres表的jsonb字段失效
今天遇到一灵异事件,ORM更新操作,一字段始终不生效,最后发现问题原因是postgres的jsonb导致的。
2024-03-27 22:38:52 265
原创 easyocr和paddleocr的简单使用与对比
这次有个OCR的需求,对比了一下和的识别效果,最终选择了paddleocr。这里记录一下使用过程和遇到的问题。
2024-03-14 23:30:43 1057
原创 Windows本地代理,IP端口转发
比如我访问 127.0.0.1:8500时,把请求转发到192.168.1.3:8500。需求:本机访问 ip1:port1时,把它转到 ip2:port2。以管理员身份运行命令行窗口。
2023-12-03 16:23:15 204
原创 Python partial的作用
partial 的科普 见这位大神的文章,写的很好:https://zhuanlan.zhihu.com/p/47124891。,此时问题来了,前2个参数signo, frame,是系统传的,我们要如何把自己的service_id传进去呢?这时 就需要用到partial了。一个例子:监听服务退出信号。
2023-08-27 22:21:31 214
原创 flask接口请求频率限制
return jsonify({'code': 403, 'msg': '请稍后再试!'})# 全局错误处理# 单独错误处理比如 有时候,希望登录失败的,才进行计数,登录失败超过20次就禁止访问,而登录成功的,不计数,随便请求 无限制# 上面的例子是:返回的JSON中code==400 就做一次计数,否则就不计数(这次请求,不计入限制)# 还可以有其他的计数逻辑,比如= 200更多操作见官网。
2023-08-16 21:11:31 1429 1
原创 kubevirt pod 报错 N node(s) had volume node affinity conflict
猜测是 hostpath-csi StorageClass 无法预知pod将被调度到哪个node上,必须等pod调度到node后才能做PV-PVC的绑定,所以它的 volumeBindingMode 必须是 WaitForFirstConsumer。我把 hostpath-csi StorageClass 的 volumeBindingMode 改成了 Immediate 就发生了这个错误,改回 WaitForFirstConsumer 就解决了。我这里所写的,可能只是其中一个可能的原因。
2023-08-10 10:50:19 276
原创 元素周期表的118个化学元素
在网上没找到能复制拿来用的,去百度爬了个,整理下 方便后来人:['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y',
2022-04-25 17:30:57 871 2
原创 使用docker体验elasticsearch
注意事项:官方文档提示至少要为docker分配4G的内存,否则可能会启动失败。我亲测确实是这样,elasticsearch+kibana 占用了3.3G内存。你可能会遇到这个错误:bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。这时需要到(宿主机) /etc/sysctl.conf 中增加一行:v
2022-04-11 09:05:15 226
原创 APScheduler定时任务不执行?
不知你有没有遇到APScheduler定时任务部分未执行的情况,我反正是遇到了,任务随机性的不执行,一看官网文档,才知道是自己的使用方法不对。 当前网上的大多数文章都只说了基本的使用方法,没说注意事项。我在这里整理一下:1. Executor 是默认大小为10的ThreadPoolExecutor。原文:from apscheduler.schedulers.background import
2021-12-18 23:10:59 5743 6
原创 MySQL分区表-按月份归类
MySQL单表数据量,建议不要超过2000W行,否则会对性能有较大影响。最近接手了一个项目,单表数据超7000W行,一条简单的查询语句等了50多分钟都没出结果,实在是难受,最终,我们决定用分区表。建表一般的表(innodb)创建后只有一个 idb 文件:create table normal_table(id int primary key, no int)查看数据库文件:normal_table.ibd 创建按月份分区的分区表,注意!除了常规主键外,月份字段(用来分区的字段)也必须是主键
2021-08-25 22:59:58 535 1
原创 nginx负载均衡-提升服务的并发能力
我使用的框架是python的fastAPI,一个简单的hello world,加一个sleep(2)模拟耗时操作。代码如下:import timeimport uvicornfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): time.sleep(2) # 模拟耗时操作 return {"Hello": "World"}先单进程启动启动命令:uvicorn --host 0.
2021-08-14 21:59:13 570
原创 fastapi使用websocket的简单示例
前端页面:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>websocket</title></head><body><h1>WebSocket Chat</h1><input type="text" id="nickname" autocomplete="off"
2021-08-01 12:09:38 1329 1
原创 fastAPI使用mongoDB
我用的是mongoengine先 pip install mongoengine编写ORM模型:from mongoengine import Document, IntField, StringField, ListField, EmbeddedDocument, EmbeddedDocumentField, FloatFieldclass Course(EmbeddedDocument): subject = StringField(required=True) score =
2021-07-31 17:20:37 2070
原创 FASTapi sqlalchemy 的一些写法
joindb.query(YourModelA).join(YourModelA)...and、orfrom sqlalchemy import and_, or_db.query(YourModel).filter(and_(condition1,condition1...))...offset、limitdb.query(YourModel).filter(...).offset(1).limit(1).all()is null 、is not nulldb.qu.
2021-07-31 16:15:39 681
原创 fastapi.exceptions.RequestValidationError: 1 validation error for Request
框架用的fastAPI 报错如标题我有两个路由:@router.get("/{id}") [email protected]("/others") pass结果访问 /others报错:fastapi.exceptions.RequestValidationError: 1 validation error for Requestpath -> id value is not a valid integer (type=type_error.integer)官网对此的解释 ,
2021-07-21 10:20:49 2885
原创 python sorted 对对象排序
方法一:class Myobj: def __init__(self,id,score): self.id=id self.score=scoreif __name__ == '__main__': array=[Myobj(1,5),Myobj(2,2),Myobj(3,0)] array=sorted(array,key=lambda Myobj:Myobj.score) for obj in array: print
2021-06-15 14:52:13 322
原创 unable to prepare context: path “.\r“ not found
执行sh 脚本的时候,报标题错误原因是 脚本是在Windows上编辑,然后上传到Linux上执行。好像是2个系统编码不一样导致的vim 打开脚本 进入命令行 输入 set ff=unix 再保存退出即可
2021-05-21 09:18:46 3605
原创 python ipaddress.ip_network 报错ValueError: IP/x has host bits set
from ipaddress import ip_networkif __name__ == '__main__': network=ip_network('127.0.0.1/8') # 随便一个示例 print(network)在使用ip_network的时候报错 ValueError: 127.0.0.1/8 has host bits set 刚开始没搞明白原因,后来仔细检查了下,像上面 ‘127.0.0.1/8’ 后面24位(32-8)必须全是0才行。‘127.0.0.0
2021-05-18 16:59:21 5537 2
原创 VMware中安装Linux后,ifconfig只有127.0.0.1,SSH终端无法连接
确保 此电脑-右键-管理-服务 里面VMware各项服务都在运行vim /etc/sysconfig/network-scripts/ifcfg-ens33如果最后一行是 ONBOOT=no 把它改成 yes然后 service network restart
2021-05-11 10:43:01 272
原创 裂开!supervisor将我的python版本变成了3.6.8?
今天踩了一个supervisor的坑,我的python版本明明是3.7.8 :python -V Python 3.7.8安装一会儿软件过后,直接提示不认识:python -V bash: /usr/bin/python: No such file or directory而使用python3 -V 却能显示:python3 -V Python 3.6.8我蒙懵逼了,软链接明明用的是python 这里python却不认识。明明安装的是python3.7.8 ,这里却变成了3.6.
2021-04-16 17:02:17 535
原创 centOS下python用ffmpeg将MP3转换成WAV
最近有个任务,把服务器上的mp3转换成wav格式。查了一下 可以这么用:# 先PIP install pydubimport osfrom pydub import AudioSegmentCURRENT_DIR = os.path.dirname(os.path.abspath(__file__))def mp3_to_wav(mp3_path, wav_path): song = AudioSegment.from_mp3(mp3_path) song.export(wa
2021-03-25 14:21:20 258
原创 wget unable to resolve host address
刚安装的虚拟机,wget的时候报错。ping www.baidu.com的时候也报错 name or service not known在 /etc/resolv.conf 后面追加两行:nameserver 8.8.8.8 #google域名服务器nameserver 8.8.4.4 #google域名服务器再ping 还是不行service network restart 后就好了,wget 也好了...
2021-01-12 23:36:49 382
原创 python操作redis zset
前文写了redis的第五种数据结构zset,这篇文章照例用python实现一下。(其它几种数据结构,python客户端和redis客户端的语法还比较一致的,但是zset的一些差别是真的有点大,强烈建议结合前文redis客户端一起阅读)from redis import Redisif __name__ == '__main__': client = Redis(host='192.168.174.129', port=6666, decode_responses=True) try:
2020-12-28 14:08:57 2170
原创 redis的第5种数据结构——zset
前面几篇文章写了redis的4种数据结构——string / hash / list / set, 今天介绍下最后一种数据结构 zset。zset 和 set 的不同之处是,zset多了一个scorezset的命令都是以Z开头1.添加/更新 zadd key [nx|xx] [ch] [incr] score member …默认情况下的返回值:成功添加的新成员的数量> zadd z1 77 tom 90 mike 60 michael(integer) 3如果有序集合中已经存在s
2020-12-27 00:04:41 514
原创 python操作redis set
上一篇文章写了redis的第四种数据结构——set ,这篇文章用python客户端来复现一下。(建议结合上篇文章看,效果更佳)from redis import Redisif __name__ == '__main__': client = Redis(host='x.x.x.x', port=6666, decode_responses=True) try: # 添加元素 print(client.sadd('s1', 1, 2, 3)) # 3
2020-12-26 16:38:02 1642
原创 redis的第四种数据结构——set
前面几篇文章讲了redis的string / hash / list,今天写一下set。redis的集合和数学上的集合是一样的,set命令都以S开头1.添加元素到集合 sadd key member…> sadd s1 1 2 3(integer) 3> sadd s1 3(integer) 0> sadd s1 2 3 4 5(integer) 22.查看集合中的元素 smembers key> smembers s11) "1"2) "2"3) "3"
2020-12-26 15:15:37 187
原创 python操作redis list
上一篇文章写了redis客户端的各种list操作,这篇文章用python客户端来复现一下。(建议结合上篇文章看,效果更佳)from redis import Redisif __name__ == '__main__': client = Redis(host='192.168.174.129', port=6666, decode_responses=True) try: # 左右插入 print(client.rpush('list1', 1, 'a
2020-12-20 13:10:56 257 1
原创 redis的第三种数据结构 list
前几篇文章介绍了redis的string和hash,今天讲一下list。list的命令基本都以L开头1.从右边插入列表 rpush key value1 value2 …> rpush list1 1 a 2(integer) 32.从左边插入列表 lpush key value1 value2 …> lpush list1 0 -1(integer) 53. 查看列表 lrange key start stop> lrange list1 0 -11) "-1"
2020-12-19 20:55:14 189 1
原创 python 操作redis hash
前文介绍了Linux客户端操作redis hash,这篇文章用python客户端实现一下。from redis import Redisif __name__ == '__main__': client = Redis(host='192.168.174.129', port=6666, decode_responses=True) try: # client.hset('s1','name','pygo') # client.hset('s1','na
2020-12-19 15:42:25 261 1
原创 redis的第二种数据类型——hash
前一篇介绍了redis的第一种数据类型string。这一波来介绍一下第二种数据类型hash。hash类似于程序中的对象,每个对象可以有多个属性。结构如下图:key -> field:valuehash 的命令都以 h 开头1.hset key field value> hset s1 name pygo age 18(integer) 22.hget key field> hget s1 name"pygo"> hget s1 age"18"> hge
2020-12-19 10:25:17 105 1
原创 python 操作redis string
上文讲了Linux客户端下,redis string的各种操作。老规矩参照这上一篇,用python客户端实现一下。from redis import Redisif __name__ == '__main__': client = Redis(host='192.168.174.129', port=6666, decode_responses=True) try: client.set('a', 1) print(client.get('a')) #
2020-12-14 22:16:18 127
原创 redis string的各种操作
上一篇讲了redis的keys操作。这一波来讲下string的各种操作。1.set key value> set a 1OK2.get key> get a"1"3.incr key> incr a(integer) 2> get a"2"只能对整数进行操作,小数也不行> set b bOK> incr b(error) ERR value is not an integer or out of range4.incrby key
2020-12-13 22:34:43 169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人