- 博客(150)
- 资源 (3)
- 收藏
- 关注
原创 内网穿透方案
SSH Tunnel 是利用 SSH 协议进行端口转发的一种方式,你可以使用 OpenSSH 或者其他 SSH 客户端来建立安全的 SSH 隧道,从而实现内网穿透的功能。:Tailscale 是一个简单易用的内网穿透服务,它使用 WireGuard 协议来建立安全的连接,并提供了跨平台的客户端和管理界面,方便管理和配置网络。:ZeroTier 是一个开源的软件定义的网络(SDN)平台,可以将不同设备、服务器和应用程序连接到一个虚拟的局域网中,从而实现安全的内网穿透。
2024-03-21 18:45:14 263
原创 协程是什么?
协程可以身处四个状态中的一个。当前状态可以使用函数确定,该函数会返回下述字符串中的一个:1.GEN_CREATED:等待开始执行2.GEN_RUNNING:解释器正在执行3.GEN_SUSPENED:在yield表达式处暂停4.GEN_CLOSED:执行结束通过asyncio源码分析我们可以看到, asyncio的调度其实就是I/O多路复用器;
2024-01-03 13:11:16 809
原创 request 设置了timeout依然假死
requests.get(…, timeout=(3, 6)) # 这里会覆盖设置的 30s。其实是dns解析卡死了。
2023-12-28 09:58:14 456
原创 function/symbol ‘pango_context_set_round_glyph_positions‘ not found in library ‘libpango-1.0.so.0‘x
python html转pdf
2022-07-13 09:24:21 701
原创 http chunked
最近关注到一个HTTP/1.1的chunked, 说的是分块传输,这篇做个总结吧前言一般在HTTP API设计时,返回的参数或json或xml亦或是一个静态文件, 他们的Content-Length响应头总是确定的,所以浏览器接受到API返回后,接收完Content-Length中定义的长度字节后开始解析页面,针对大文件比如超过1个G的,此种方式肯定不可取,因为接受完整个返回的时间可能超过用户的无感时间,又或者是一个不能预先确定报文体的长度的返回,不可能在头中包含Content-Length域来指明报
2022-05-26 14:47:42 440
原创 pip离线装包
前言python开发中对一些无网的环境,需要安装python包怎么办?有三种方式第一种: 手动安装去pypi官网(国外网站一般不通)或者国内镜像源(1)阿里云 http://mirrors.aliyun.com/pypi/simple/(2)豆瓣http://pypi.douban.com/simple/(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.c..
2022-05-25 10:55:19 652
原创 RGB颜色对照表
颜色RGB代码英文(大小写不敏感)#000000Black#0C090ANight#2C3539Gunmetal#2B1B17Midnight#34282CCharcoal#25383CDark Slate Grey#3B3131Oil#413839Black Cat#3D3C3AIridium#463E3FBlack Eel#4C4646Black Cow#504A4BGray Wolf#5650...
2022-05-25 09:40:29 2732
原创 markdown高级编辑技巧
前言markdown文本编辑器语法是markdown标记语言,相比于其他标记语言比如html非常简单明朗。但是日常我们可能需要一些复杂功能,比如复杂表格制作页内跳转(锚点)复杂表格制作跳转到另一篇博客锚点原理同html锚点, 即采用一个标签比如a标签作为锚点, 我们以这篇博客为例,它的源码如下:### 前言- markdown文本编辑器语法是`markdown`标记语言,相比于其他标记语言比如`html`非常简单明朗。但是日常我们可能需要一些复杂功能,比如 - [复杂表格制
2022-05-19 15:36:30 348
原创 Python定时任务 - apscheduler
一、 四大组件触发器 triggers :用于设定触发任务的条件date 日期:触发任务运行的具体日期interval 间隔:触发任务运行的时间间隔cron 周期:触发任务运行的周期任务储存器 job stores:用于存放任务,把任务存放在内存或数据库中执行器 executors: 用于执行任务,可以设定执行模式为单线程或线程池调度器 schedulers: 把上方三个组件作为参数,通过创建调度器实例来运行BlockingScheduler 阻塞式调度器:适用于只跑调度器的程序。B
2022-05-18 10:14:38 1165
原创 fastapi路由
有的同学不知道fastapi如何向flask一样,同个url配置多个methods,下面说明from fastapi import FastAPI, APIRouterapp = FastAPI()@app.api_route("/index", methods=["GET", "POST"])async def index(): res = "HELLO" return resif __name__ == '__main__': import uvicorn
2022-05-13 10:37:44 1240 2
原创 Cookie|Seesion|Token|JWT
文章目录CookieSessionTokenJWT (json web token)Cookie概念由服务端产生,存储在客户端,每次交互通过 request header带到服务端cookie是存在的,但不是http协议的内容每个domain的cookie保存的数据不超过4KB, 很多站点还限制个数20我的项目中使用过cookie的场景是tornado的secret cookie, 即后端返回set-cookie时,需要用服务器保存的密钥给用户信息加盐生产唯一签名值,这个cookie则是安全
2022-05-09 10:40:10 653
原创 并发|带宽|吞吐量|QPS等概念
文章目录开始压测前先了解几个概念吞吐量带宽PVUVIP开始压测前先了解几个概念吞吐量带宽带宽涉及到的单位基础单位单位概念说明Bbyte字节bbit比特(位)1B=8b带宽单位单位概念说明Mbps(Million bits per second) 即 Mbit/s(Mb/s)一兆比特(位)/s(一百万比特(位)/s)KbpsKbit/s(Kb/s)千比特(位)/sbpsb/s比特(位)/s下载速
2022-04-22 12:40:28 5599 1
原创 gdb常用调试命令
gcc编译:#mermaid-svg-7RpKpE9xQibTrwmI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7RpKpE9xQibTrwmI .error-icon{fill:#552222;}#mermaid-svg-7RpKpE9xQibTrwmI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-
2022-04-19 18:05:12 614
原创 python获取函数默认参数
defaultsinspect.getargspecimport inspectdef func(a, b=1): passprint(func.__defaults__)>> (1,)print(inspect.getargspec(func))>> ArgSpec(args=['a', 'b'], varargs=None, keywords=None, defaults=(1,))
2022-03-19 17:44:02 982
原创 ImportError: email-validator is not installed, run `pip install pydantic[email]`
pip install email_validator
2022-03-17 20:28:32 1113
原创 MySQLdb 安装
系统: centos7python版本: 3.8yum install mysql-develyum installl pymysql-develpip install mysqlclient
2022-03-12 11:55:08 4569
原创 pip安装的包无命令行时
python -m 对应的文件名比如 pyinstallerpython 0m pyinstaller xxx虚拟环境虚拟环境装的可执行命令会在 虚拟环境包下的bin目录找到该可执行文件
2022-03-09 21:50:22 1052
原创 linux 没有可用软件包 pstree
yum provides反查询文件在什么包中通过 yum provides pstreeyum install psmisc
2022-03-03 10:57:35 632
原创 pyinstaller可执行文件__file__失效
环境python3.8pyinstaller4.5.1问题项目中有一行 动态获取绝对路径的代码.self.absPath = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))打包后执行报错: FileNotFoundError: [Errno 2] No such file or directory: '/tmp/_MEIDpU2rE/config/project.yaml'简化问题, 发现是 __file_..
2022-03-01 16:24:33 988
原创 swagger python集成 flask篇
不同于fastapi flask等老框架没有集成swagger需要第三方辅助, 现在列出两个常用的辅助库flasgger官方文档完整示例from flask import Flask, jsonifyfrom flasgger import Swaggerapp = Flask(__name__)template = { "swagger": "2.0", "info": { "title": "My API", "description":
2022-02-24 14:02:01 1355
原创 序列化和编码的区别
总纠结于某些概念无法自拔不是好事, 得改!!!编码编码是针对字符的, 如 unicode实现1 - ucs-2)码规定了所有字符的编码二进制值, 全部占用2个字节, 其他编码方式比如 unicode实现2 - utf-8 规定了字符编码的另一种实现标准序列化序列化是针对对象的, 将对象写入字节流,具体怎么写入可以自定义比如一个对象有三个成员变量, 分别对应 char a="你", int32 b=1, char c="我" 那么在序列化时(即 写入字节流), char a可以规定utf-8
2022-02-23 10:39:00 890
原创 文本协议和二进制协议的区别
文本协议json xml等属于文本协议 优点: 统一性 方便阅读 方便扩展 跨语言跨平台 缺点: 报文大浪费带宽 不好加密二进制协议如 消息头+消息体 的方式编码, 消息头标识消息体的长度, 这种方式无异于 节约带宽, 方便自定义加密如二进制的一些位运算操作, 缺点是 1. 文档和消息体必须一致才能解析 2. 难以跨越处理器平台 比如大端小端 3 修改不易引用百度知道...
2022-02-22 10:15:21 664
原创 文本文件和二进制文件
物理意义上两者底层存储都是二进制的, 编码逻辑上做了区分,文件文件和二进制文件的区别在于编解码, 文本文件基于字符编码(以字节为单位), 而二进制文件是自定义编码(可以以bit为单位), 基于值编码, 稍微了解 utf-8或者gbk编码后可以了解二进制文件通常更节省空间, 文本文件是固定编码格式的 比如 utf-8 编解码存储, 而二进制文件则是自定义编解码, 比如jpeg编解码, 如果用 文本打开 jpg图片将会出现乱码....
2022-02-21 11:30:06 208
原创 requests stream
关于 Python requests模块的 stream参数报文过大使用迭代用demoimport requestsbase_url="http://httpbin.org/"r = requests.get(base_url+'/stream/10', stream=True)response_body解析: 以\n分割for lines in r.iter_lines(): print("lines:", lines)response_body解析: 字节数分割
2022-02-17 10:48:31 1150
原创 python 可迭代对象
可迭代对象图示结论可迭代对象包含迭代器对象。如果一个对象定义了__iter__方法,即是可迭代对象;如果一个对象定义了__next__方法,即是迭代器。定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和__next__方法。...
2022-02-16 11:03:16 1644
redis相关内容redis相关内容redis相关内容redis相关内容redis相关内容redis相关内容
2022-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人