自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XiaoPawnYe的博客

一个python菜鸟的修炼之路

  • 博客(169)
  • 资源 (2)
  • 收藏
  • 关注

原创 GCC安全编译选项

定义:Forrtify Source:用FORTIFY_SOURCE编译宏来打开FS选项。堆栈不可执行:打开堆栈不可执行/数据执行保护选项实现堆栈不可执行保护。定义:地址无关:打开地址随机化,地址无关化代码,地址无关可执行。定义:删除符号表:使用-s选项或者strip工具去除符号表。定义:随机化:打开地址随机化,地址无关代码,地址无关执行。定义: 整数溢出检查:打开ftrapv选项来检查整数溢出。定义:动态库搜索路径(禁选),禁止使用,-rpath。定义:立即绑定,打开GOT表重定位只读选项。

2025-01-12 17:30:16 447

原创 1.RPC基本原理

远程过程调用(remote procedure call)

2024-12-26 07:46:50 870

原创 7.即时通讯

sio.on(‘disconnect’),disconnect 为特殊事件,当客户端断开连接后自动执行。sio.enter_room(sid, room_name):将连接的客户端添加到一个room。// 创建好websocket连接成功后自动触发(服务端执行self.accept()后)// 客户端主动断开连接,服务端会执行 websocket_disconnect()// 当服务端主动断开客户端时自动触发(服务端执行self.close()后)// 页面上客户端点击向服务端"关闭连接"时触发。

2024-12-25 22:55:54 1094

原创 Python的位运算

计算机在处理负数的位运算时必须使用补码,因为如果用原码进行运,符号位会导致运算规则变得复杂且不符合逻辑,而补码运算可以将减法转化为加法,使得计算机的运算电路设计更加简单高效。在 Python 位运算中所有的数都是基于补码进行运算的,只是正数的补码和原码形式相同,给人一种用原码运算的错觉。:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反):最高位为符号位,0表示正数,1表示负数.在位运算中符号位也参与运算。:正数的补码就是原码,负数的补码是反码+1。

2024-10-27 14:28:07 280 1

原创 分布式ID

计算机在处理负数的位运算时必须使用补码,因为如果用原码进行运,符号位会导致运算规则变得复杂且不符合逻辑,而补码运算可以将减法转化为加法,使得计算机的运算电路设计更加简单高效。在 Python 位运算中所有的数都是基于补码进行运算的,只是正数的补码和原码形式相同,给人一种用原码运算的错觉。:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反):最高位为符号位,0表示正数,1表示负数.在位运算中符号位也参与运算。:正数的补码就是原码,负数的补码是反码+1。

2024-10-27 14:24:33 330

原创 python位运算

计算机在处理负数的位运算时必须使用补码,因为如果用原码进行运,符号位会导致运算规则变得复杂且不符合逻辑,而补码运算可以将减法转化为加法,使得计算机的运算电路设计更加简单高效。在 Python 位运算中所有的数都是基于补码进行运算的,只是正数的补码和原码形式相同,给人一种用原码运算的错觉。:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反):最高位为符号位,0表示正数,1表示负数.在位运算中符号位也参与运算。:正数的补码就是原码,负数的补码是反码+1。

2024-10-27 14:03:32 183

原创 7.JWT认证

JSON Web Token (JWT) 是一个非常轻巧的规范,常见的两种jwtjws (JSON Web Signature) 轻量级,适合token认证jwe (SON Web Encryption) 相对繁琐,适合数据传输解决跨域认证解决csrf跨域问题。

2024-09-23 20:16:43 406

原创 Elasticsearch

Haystack是在Django中对接搜索引擎的框架,搭建了用户和搜索引擎之间的沟通桥梁Haystack 可以在不修改代码的情况下使用不同的搜索后端(比如WhooshSolr等等)

2024-05-02 10:25:04 616

原创 6.python网络编程

在每一次写操作执行后,都从socket从writable中删除,这样做的原因很简单,该写的数据已经写完了,如果不删除,下一次select操作时,又会把他放入到writable中,可是现在已经没有数据需要写了啊,这样做没有意义,只会浪费select操作的时间,因为它要遍历outputs中的每一个socket,判断他们是否可写以决定是否将其放入到writtable中。AddressFamily=AF_INET:(用于 Internet 进程间通信)

2024-05-01 18:44:26 851

原创 网络编程总结

幂等方法是无论调用多少次都得到相同结果的 HTTP 方法例如:a=4 是幂等的,a+=4 就是非幂等的幂等的方法客户端可以安全的重发请求短连接: 建立链接 数据传输 关闭链接(链接的建立和关闭)长连接: Connection:keep-alive 保持 TCP 链接不断开如何区分不同的 HTTP 请求呢?操作系统提供的同时监听多个 sockt 的机制为实现高并发需要一种机制并发处理多个 socketLINUX 常见的是 select poll epoll。

2024-03-10 12:17:34 680

原创 python总结

函数参数传递的是实际对象的内存地址,如果参数引用的是可变对象,在函数内部修改后,就算没有把修改后的值返回回去,外面的值其实也改变了。

2024-03-10 11:54:19 178

原创 15.Django总结

REST:表现层状态转换(Representational State Transfer)是一种设计风格使用场景:模板中的超链接,视图中的重定向在定义url时为include定义namespace属性,为url定义name属性注意:反向解析传参数,主要是在我们的反向解析的规则后面添加了两个参数,两个参数之间使用空格隔开< a href = " {% url 'booktest:fan2' 2 3 %} " > 位置参数

2024-03-05 21:58:43 1206

原创 Django框架FAQ

日期型(DateField,TimeField,DateTimeField)和数字型(IntegerField,DecimalField,FloatField)不能接受空字符串,如要想要在填写表单的时候这两种类型的字段为空的话,则需要同时设置null=True,blank=True。众所周知我们创建后台管理员时候是没有设置手机号的.报这个错就是告诉我们在数据库中已经存在一个管理员,且手机号为空,我们再次创建管理员就会有手机号重复的现象存在从而报这个错. username重复时同样出现以下问题。

2023-11-11 22:41:31 625

原创 14.Web框架

CSRF(Cross-site request forgery)攻击,中文名是跨站请求伪造比如现在有两个网站,A网站是真实受信任的网站,而B网站是危险网站。当你登陆A网站后,浏览器会将A网站服务器给你生成的 sessionid 存入 cookie,有了这个 cookie,就拥有了你的帐号权限,以后请求访问,就不用再次登陆在cookie的过期时间之内,你去访问了恶意网站B,它给你返回一些恶意请求代码.要求你去访问网站A,这样你的浏览器就会在不知情的情况下去访问可信网站A。

2023-10-29 15:33:09 297

原创 算法基础:图

我个人将图论的学习分成了五个境界。知道图有啥用,和其他数据结构联系在哪,区别在哪。会对图进行遍历,包括 bfs 和 dfs会图的经典算法。比如 bellman A*知道这道题目该用图的哪个算法,有可能写不出来或者细节写不对。能灵活使用经典算法解决各种题目。那么你是哪个境界?理解图的常见概念,我们就算入门了。接下来,我们就可以做题了。一般的图题目有两种,一种是搜索题目,一种是动态规划题目。第一步都是建图第二步都是基于第一步的图进行遍历以寻找可行解。

2023-09-17 17:53:18 1549

原创 5.Socket网络编程

通过套接字可以进行数据发送或接收 {IP:Port}==>> 套接字。套接字(socket)是抽象概念,表示TCP连接的一端。select:线性扫描所有监听的文件描述符fd。Epoll:使用红黑树管理数据结构,性能好。Linux一切皆是文件,文件类型。poll:同选择性能有所优化。TCP连接由两个套接字组成。

2023-08-26 15:04:28 249

原创 Docker的Docker-compose

是Docker官方编排(Orchestration)项目之一,负责快速的部署分布式应用。参考:1.2.

2023-05-02 10:51:27 267

原创 Docker的基础知识

【代码】Docker的基础知识。

2023-05-02 09:38:15 813

原创 Docker的Dockerfile

构建镜像命令格式:docker build -t [镜像名]:[版本号] [Dockerfile所在目录] # -t 指定构建后的镜像信息, # /opt/dockerfile/nginx/ 则代表Dockerfile存放位置,如果是当前目录,则用.(点)表示 docker build -t nginx:v0.2 /opt/dockerfile/nginx/

2023-04-10 08:32:46 476

原创 docker

AppData/Roaming/Typora/typora-user-images/1674529264302.png)]/AppData/Roaming/Typora/typora-user-images/1675488191179.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gzHEsjmc-1680741167530)(picture/2_1.png)]/var/lib/docker/ docker的应用目录。3.docker的基本目录。

2023-04-06 08:38:00 499 1

原创 4.常用的网络命令

无telnet命令但是有python可以使用如上命令。

2023-04-06 08:32:55 474

原创 Docker的网络模式

不涉及网桥模式中底层开销,因此速度与常规的主机网络一样快,面向外部网络流量大的容器(例如代理和缓存)可以使用主机模式,而其他容器则使用内部网络模式。Bridge模式是启动容器时的默认模式,当Docker server 启动时,会在主机上创建一个名为 docker0 的虚拟网桥。container创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享 IP,端口范围。Host:容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的IP和端口。表示把容器之间的通信关闭,

2023-04-04 08:34:28 1155

原创 python的元类

元类(metaclass)就是创建类的模板type是Python在背后用来创建所有类的元类 连type自己也是由type自己创建的metaclass: 超越变形特性 , 类是元类的实例,所以在创建一个普通类时,其实会走元类的__new__, 对普通类进行实例化时,实际是对一个元类的实例(也就是普通类)进行直接调用,所以会走进元类的__call__

2023-04-01 22:20:53 302

原创 Python的GIL全局解释锁

CPython 中还有另一个机制,叫做 check_interval, CPython 解释器会去轮询检查线程 GIL 的锁住情况.每隔一段时间,Python 解释器就会强制当前线程去释放 GIL,这样别的线程才能有执行的机会。多个线程执行时,每一个线程在开始执行时,都会锁住 GIL,以阻止别的线程执行,同样的,每一个线程执行完一段后,会释放 GIL,以允许别的线程开始利用资源。因为 CPython 大量使用 C 语言库,但大部分C语言库都不是原生线程安全的(线程安全会降低性能和增加复杂度)

2023-03-26 10:11:05 283

原创 python的多继承

当一个类存在继承,且已经在子类中重写相应的变量,改变父类的变量不会对子类有影响。方法二:super(本类名,对象).方法名()方法一:父类名.方法名(对象)

2023-03-25 22:18:13 510

原创 python的面向对象

(Python 中非常有名鸭子类型:一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子)当一个类存在继承,且已经在子类中重写相应的变量,改变父类的变量不会对子类有影响。继承:继承使的子类不仅拥有自己的属性和方法,还使用父类的属性和方法。抽象:抽象使得不同的子类和相同的方法和属性形成父类。方法二:super(本类名,对象).方法名()封装:使的代码更加模块化,代码复用度高。多态:多态使得相同的方法具有不同的功能。面向对象的四要素,以及他们之间的关系。方法一:父类名.方法名(对象)

2023-03-25 21:37:54 620

原创 3.HTTP

2.HTTPS 协议的服务器必须要有一套数字证书 ,可以自己制作,也可以向组织申请,自己颁发的证书需要向客户端验证通过,申请的证书不会弹出提示页面(startssl可以免费申请)4.客户端解析证书,这部分由客户端的tls连接来完成,验证公钥的颁发机构,过期时间,如果验证证书没问题,会生成一个随机值,然后用证书对随机数进行加密。2.http是明文传输的,https是由ssl+http构建可进行加密传输身份认证的网络协议,可防止数据内容被窃取篡改,比http协议更安全。3.传输证书(证书就是公钥)

2023-03-21 08:08:08 172

原创 2.TCP和UDP

第三次握手:Client收到确认后,检查ack是否为x+1,如果正确则将标志位ack=y+1,并将该数据包发送给Server,Server检查ACK是否为y+1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。,来传输更多的数据。:共占 16 个bit,因此最大的窗口大小为 2^16-1 = 65535 = 64k.这是早期的设计,对于现在的网络应用,可能会不太够,因此可以在选项里加一个。

2023-03-21 07:59:15 214

原创 python常见的四种数据结构

插入操作:每次向字典和集合中插入一个元素,会首先计算键的哈希值(hash(1)),再和mask=PyDicMinSize-1(字典和集合的长度)做与操作,计算这个元素应该插入哈希表的位置index=hash(key)&mask,如果index的值为空则插入,如果不为空,则比较两个元素的哈希值和键是否相等,相等则更新该值,不相等的则是哈希冲突,需要通过线性寻址(开放寻址),直至找到表中空余的位置。3.字典适合进行查找(O(1)),添加(O(1)),删除(O(1))操作。

2023-03-20 08:10:08 523

原创 python的迭代器

1.元组推导式是生成器2.使用yield的函数是生成器。

2023-03-18 19:29:21 146

原创 python的上下文管理器

循环打开1000万个文件,且用完之后不关闭,会照成资源泄露,并报如下错。2.创建临时目录,使用完后再删除临时目录。2.使用上下文改善异常处理。1.实现文件的打开和关闭。1.实现文件的打开和关闭。

2023-03-18 15:47:45 204

原创 Mysql学习大纲

1.一个完整的数据存储过程2.字段类型3.怎样创建和修改数据表4.表中的数据增删改查5.如何正确设置主键6.外键和连接7.where和having的区别8.聚合函数9.时间函数10.科学计算,字符串处理,和条件判断11.索引12.事务13. 临时表 14.视图15.存储过程16.游标17.触发器18.权限管理19.志(上)20.志(下)21.数据备份22.范式23.ER模型23.查询语句调优24.如何设计才能提高性能25.如何充分利用系统资源26.Mysql8的新特征

2023-03-15 20:47:22 168

原创 4.Redis总结

ziplist:通过一个连续的内存实现list结构,其中每个entry节点保存前后节点长度信息,实现双向链表功能。以追加的方式记录redis操作日志的文件.可以最大程度的保证redis数据安全,类似于mysql的binlog。某个访问非常频繁的热点数据,缓存中没有数据,访问该数据的大量请求,一下子都发送到数据库,导致数据库压力激增。):将内存数据保存到磁盘的二进制文件dump.rdb中( 主从复制就是基于RDB持久化功能实现)基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能。

2023-02-19 17:33:50 101

原创 Mysql总结

事务(transaction)是数据库并发控制的基本单位,事务可以看作是一系列sql语句的集合,事务要么全部执行成功要么全部执行失败,常见操作:转账场景。索引是数据表中一个或者多个列进行排序的数据结构.索引能大幅提升检索速度,创建,更新索引本身也会消耗空间和时间。第二范式:所有的字段必须完全依赖主键,不能只依赖主键的一部分。慢查询通常是缺少索引,索引不合理或者业务代码实现导致。第一范式:所有的字段都是基本数据字段,不可进行拆分。什么是B-Tree,为什么要使用 B-Tree。什么是乐观锁,什么是悲观锁。

2023-02-13 21:24:14 72

原创 树:二叉树和二叉堆

深度优先:前序遍历,中序遍历,后序遍历广度优先:层序遍历二叉堆本质上是一种完全二叉树,它分为两种类型:最大堆和最小堆二叉堆的存储方式:顺序存储在数组中,已知父节点其左节点为2×parent+1,右节点2×parent+2。

2022-12-12 21:55:13 586

原创 算法考试大纲

算法大纲

2022-12-11 22:39:56 239

原创 python的Pandas

df.loc[, ] 如列表达式部分不传,将返回所有列,Series仅支持行表达式进行索引的部分loc操作通过索引和列的条件筛选出数据.如果仅返回一条数据,则类型为Series。数据透视表,顾名思义,是指它有“透视”数据的能力,可以找出大量复杂无关的数据的内在关系,将数据转化为有意义、有价值的信息,从而看到它所代表的事物的规律和本质。at类似于locdf.at[,]如果是一个Series,可以直接值入索引取到该索引的值iat和iloc一样,仅支持数字索引。

2022-12-10 17:16:56 1342

原创 python三高问题分析

模拟高内存场景:利用两张表df1和df2以第一列做为连接键进行外关联,每张表中作为连接键的列相同的数据越是多,cprofile:分析哪一个功能模块效率低,延迟高,占用资源多。在进行外关联时形成新表数据就会成指数积增长。显示所有包含其他使用者的进程。1.top命令查看cpu使用情况。5.查询某个目录下的具体文本。测试linux的性能。

2022-11-28 08:54:55 459

原创 8.JWT认证

JWT ( Json web token)认证机制, 为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准, 该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景http协议本身是一种无状态的协议,为了知道哪个用户发出的请求,服务器必须存储一份用户登录的信息,这会登录信息又在响应时传递给浏览器,用cookie保存起来,以便下次请求时发送给浏览器token认证不需要在服务端保留用户的认证信息,token认证流程如下用户使用用户名密码来请求服务器服务器进行验证用户的信息。

2022-09-25 14:55:07 403

原创 Python的加密

PKI(Public Key Infrastructure ) 简称公钥基础设施 ,它是一个在数字世界里用来认证用户或者设备的技术,由一些受信任的机构签发一个特殊的“文件”来证明一个秘钥属于特定的用户和设备,用户和设备从而可以使用该认证过的秘钥来代表自己的身份,进行消息的传递。•接收方通过秘钥和消息计算出MAC值,如果计算的MAC和接收到的MAC值相同,则可以说明消息违背第三方篡改。•消息发送方把未加密的消息,连同消息+秘钥计算出的MAC值发送给消息接收方。•通过公钥对签名消息进行解密,取得哈希值H2。

2022-09-20 08:34:25 1924

fdfs-client-py-master1.2.6.zip

fdfs-client-py-master1.2.6.zip

2024-03-17

python算法:第三章树.xmind

算法:第三章树

2021-07-11

drf框架的视图.xmind

drf知识图谱

2021-06-19

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

TA关注的人

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