如渊
码龄6年
关注
提问 私信
  • 博客:70,553
    70,553
    总访问量
  • 28
    原创
  • 1,939,565
    排名
  • 21
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2019-05-09
博客简介:

如渊的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    285
    当月
    10
个人成就
  • 获得72次点赞
  • 内容获得8次评论
  • 获得367次收藏
  • 代码片获得1,129次分享
创作历程
  • 1篇
    2024年
  • 16篇
    2023年
  • 9篇
    2022年
  • 3篇
    2021年
  • 2篇
    2020年
  • 1篇
    2019年
成就勋章
TA的专栏
  • Linux
    1篇
  • Python
    13篇
  • 面试相关
  • 软件架构
    2篇
  • 前端开发
    1篇
  • 代码版本控制
    1篇
  • 运维
    2篇
  • 算法
    1篇
  • Leetcode刷题笔记
    3篇
  • 计算机网络
    2篇
  • 爬虫
    2篇
  • FastAPI
    1篇
  • selenium
    3篇
  • 开发工具
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

174人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Linux服务器启动80端口:prmission denied

4]. Huang Huang 的博客 . net.ipv4.ip_local_port_range 的值究竟影响了啥 . 2019.05 . https://mozillazg.com/2019/05/linux-what-net.ipv4.ip_local_port_range-effect-or-mean.html。在TCP协议中,通信双方需要各自打开1个端口,然后在这个端口上通过3次握手建立连接,连接建立后双方将会保持端口的占用,直到连接断开,如果端口耗尽后,就会拒绝连接。(例如80、443)
原创
发布博客 16 小时前 ·
349 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

SQLAlchemy技术手册

对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。
原创
发布博客 2023.08.22 ·
765 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

搭建地图服务-OSRM

OpenStreetMap它是利用公众集体的力量和无偿的贡献来改善地图相关的地理数据。OSM是非营利性的,它将数据回馈给社区重新用于其它的产品与服务。Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的、开源的 JavaScript 库。Leaflet设计坚持简便、高性能和可用性好的思想,在所有主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5和CSS3的优势,同时也支持旧的浏览器访问。支持插件扩展,有一个友好、易于使用的API文档和一个简单的、可读的源代码。
原创
发布博客 2023.08.17 ·
1459 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

权限系统设计模型分析(DAC,MAC,RBAC,ABAC)

在 MAC 的设计中,每一个对象都都有一些权限标识,每个用户同样也会有一些权限标识,而用户能否对该对象进行操作取决于双方的权限标识的关系,这个限制判断通常是由系统硬性限制的。属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性(如一篇文章,又称资源属性),所以理论上能够实现非常灵活的权限控制,几乎能满足所有类型的需求。用户与角色是多对多的关系,用户与会话是一对一的关系,会话与角色是一对多的关系,角色与许可是多对多的关系。
原创
发布博客 2023.08.17 ·
456 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何在macOS上安装NVM 管理note版本

NVM(Node Version Manager)是一个用于在基于Linux系统上安装和管理Node.js的shell脚本。macOS用户可以使用homebrew来安装NVM。本教程帮助你在macOS系统上安装NVM并管理Nodej.is版本。前提条件 在macOS上使用安装。
原创
发布博客 2023.08.11 ·
841 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Git相关配置及常用命令

命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}: 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p。
原创
发布博客 2023.08.07 ·
74 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Docker概念及命令

其它的指令还有ENTRYPOINT、ARG、VOLUME、WORKDIR、USER、HEALTHCHECK、ONBUILD、LABEL等等。--since :显示某个开始时间的所有日志 -t : 显示时间戳 --tail :仅列出最新N条容器日志。:Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。docker run -i -t -- name 名字 centos:7(镜像:版本)等镜像仓库上有大量的高质量的镜像可以用,可以从仓库获取镜像。
原创
发布博客 2023.08.03 ·
138 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

进程\线程\协程的概念及区别

协程(co-routine)是比线程更轻量级的存在,又称微线程,在单线程上执行多个任务,用函数切换,开销极小.协程不通过系统调度,由程序控制,拥有自己寄存器上下文和栈,协程切换时,将寄存器上下文和栈保存,切加时恢复先前保存寄存器和栈,因此协程能保留上次调用时的状态,即局部状态的一个特定组合,每次过程重入时,相当于进入上次调用状态.操作系统调度执行的最小单位,也叫执行路径,依赖进程存在,在一个进程中至少有一个线程,叫主线程.多个线程共享内存(数据共享,全局变量共享),提升程序运行效率.
原创
发布博客 2023.08.03 ·
65 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算法的时间与空间复杂度

我们继续看上面的例子,假设每行代码的执行时间都是一样的,我们用 1颗粒时间 来表示,那么这个例子的第一行耗时是1个颗粒时间,第三行的执行时间是 n个颗粒时间,第四行的执行时间也是 n个颗粒时间(第二行和第五行是符号,暂时忽略),那么总时间就是 1颗粒时间 + n颗粒时间 + n颗粒时间 ,即 (1+2n)个颗粒时间,即: T(n) = (1+2n)*颗粒时间,从这个结果可以看出,这个算法的耗时是随着n的变化而变化,因此,我们可以简化的将这个算法的时间复杂度表示为:T(n) = O(n)
原创
发布博客 2023.08.03 ·
54 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络协议——七层、五层、四层协议概念及功能

这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)”。它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。
原创
发布博客 2023.08.02 ·
8692 阅读 ·
6 点赞 ·
0 评论 ·
25 收藏

深入理解“三次握手,四次挥手”

TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址、端口号等。TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接。采用4次挥手来关闭一个连接。
转载
发布博客 2023.08.02 ·
107 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Python 命令行:click 整理学习

click是一个以尽可能少的代码、以组合的方式创建优美的命令行程序的 Python 包。它有很高的可配置性,同时也能开箱即用。它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 CLI API 所产生挫败感。任意嵌套命令自动生成帮助支持运行时延迟加载子命令很显然,我们需要针对count和name来定义它们所对应的参数信息。count对应为命令行选项--count,类型为数字,我们希望在不提供参数时,其默认值是 1name对应为命令行选项--name。
转载
发布博客 2023.07.26 ·
1134 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

Python版本管理-pyenv

pyenv 可以改变全局的 Python 版本,在系统中安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments。而 virtualenv 主要是用来管理相同版本 Python 不同项目的包的依赖不同的问题,就无法解决这个问题,这个时候就需要 pyenv。2.迁移时,python3由于依赖于相对高一点的glibc库,要注意迁移与被迁移服务器的glibc的版本问题,版本不同时还需要手动安装,更新时注意。
原创
发布博客 2023.07.17 ·
2787 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

sqlalchemy中Column的默认值属性default/server_default

我们知道 使用 sqlalchemy 定义 ORM 对象,需要给一些 字段设置一个默认值, default 属性类似下面的代码.name = Column(String(length=64), comment='姓名')is_delete = Column(Integer,comment="是否删除",default=0)(self.id,这样就可以 在 session.add() , session.commit() 的时候,如果没有提供这个字段的值,就会自动设置会0 写入到数据库里面。
原创
发布博客 2023.07.17 ·
1157 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Netflix Dispatch 开源项目部署及启动

Netflix 很高兴地宣布我们的危机管理编排框架开源:Dispatch!好的,但是什么是 Dispatch?简单来说,Dispatch 就是:您今天为管理事件而做的所有临时事情,都为您完成,以及您应该做但没有时间的其他一堆事情!Dispatch 通过与整个组织使用的现有工具(Slack、GSuite、Jira 等)深度集成,帮助我们有效管理安全事件。Dispatch 利用这些工具的现有熟悉度来提供编排,而不是引入其他工具。
原创
发布博客 2023.07.12 ·
294 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

python线程池ThreadPoolExecutor使用

假设我们必须多线程任务创建大量线程。由于线程太多,因此可能会有很多性能问题,这在计算上会是最昂贵的。一个主要问题可能是吞吐量受限。我们可以通过创建一个线程池来解决这个问题。一个线程池可以被定义为一组预先实例化和空闲的线程,它们随时可以开始工作。创建线程池比我们需要执行大量任务时为每个任务实例化新线程更受欢迎。线程池可以管理大量线程的并发执行,如下所示 -
原创
发布博客 2023.06.30 ·
2175 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Python 函数性能分析cProfile+snakeviz

下载相关库:pip install cProfilepip install snakeviz2.应用3.查看分析性能snakeviz load_data.out
原创
发布博客 2023.06.30 ·
495 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

asyncio异步IO--协程(Coroutine)与任务(Task)详解

协程(coroutines)是通过定义函数或方法,是使用asyncio进行异步编程的首选途径。如下,是一个协程的例子:123456上例中的main方法就是我们定义的协程。代码的功能很简单:开始打印“hello”沉睡1秒打印“world”结束我们在交互环境(Python3.7)下执行以上代码,看看效果:12345678910helloworld需要注意的是:如果像执行普通代码一样直接调用main(),只会返回一个coroutine对象,
原创
发布博客 2022.12.16 ·
1947 阅读 ·
1 点赞 ·
1 评论 ·
10 收藏

python多任务之进程、进程与线程对比、进程间通信、进程池Pool

2.1.1 进程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的2.1.2. 进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另外的事情进程对象 =
原创
发布博客 2022.07.09 ·
356 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深拷贝(deepcopy)与浅拷贝(copy)的区别

1.深拷贝与浅拷贝对象的引用(内存地址)”赋值给变量的,在python中有6个标准数据类型,他们分为可变和不可变两类。浅拷贝(copy)1.浅拷贝会创建一个新的容器对象(compound object)2.对于对象中的元素,浅拷贝就只会使用原始元素的引用(内存地址)常见的浅拷贝操作有:注意点:1>拷贝对象中无可变类型元素,原对象的元素值改变不影响新对象的元素值.2>拷贝对象中存在可变类型元素A(例如列表中的子元素是一个字典),拷贝时新对象中可变类型元素A,两者指向同一个内存地址,如果拷贝对象A的值改变
原创
发布博客 2022.07.02 ·
6327 阅读 ·
7 点赞 ·
0 评论 ·
22 收藏
加载更多