- 博客(162)
- 资源 (2)
- 收藏
- 关注
原创 Elasticsearch
Haystack是在Django中对接搜索引擎的框架,搭建了用户和搜索引擎之间的沟通桥梁Haystack 可以在不修改代码的情况下使用不同的搜索后端(比如WhooshSolr等等)
2024-05-02 10:25:04
550
原创 6.python网络编程
在每一次写操作执行后,都从socket从writable中删除,这样做的原因很简单,该写的数据已经写完了,如果不删除,下一次select操作时,又会把他放入到writable中,可是现在已经没有数据需要写了啊,这样做没有意义,只会浪费select操作的时间,因为它要遍历outputs中的每一个socket,判断他们是否可写以决定是否将其放入到writtable中。AddressFamily=AF_INET:(用于 Internet 进程间通信)
2024-05-01 18:44:26
771
原创 网络编程总结
幂等方法是无论调用多少次都得到相同结果的 HTTP 方法例如:a=4 是幂等的,a+=4 就是非幂等的幂等的方法客户端可以安全的重发请求短连接: 建立链接 数据传输 关闭链接(链接的建立和关闭)长连接: Connection:keep-alive 保持 TCP 链接不断开如何区分不同的 HTTP 请求呢?操作系统提供的同时监听多个 sockt 的机制为实现高并发需要一种机制并发处理多个 socketLINUX 常见的是 select poll epoll。
2024-03-10 12:17:34
627
原创 python总结
函数参数传递的是实际对象的内存地址,如果参数引用的是可变对象,在函数内部修改后,就算没有把修改后的值返回回去,外面的值其实也改变了。
2024-03-10 11:54:19
143
原创 15.Django总结
REST:表现层状态转换(Representational State Transfer)是一种设计风格使用场景:模板中的超链接,视图中的重定向在定义url时为include定义namespace属性,为url定义name属性注意:反向解析传参数,主要是在我们的反向解析的规则后面添加了两个参数,两个参数之间使用空格隔开< a href = " {% url 'booktest:fan2' 2 3 %} " > 位置参数
2024-03-05 21:58:43
1158
原创 Django框架FAQ
日期型(DateField,TimeField,DateTimeField)和数字型(IntegerField,DecimalField,FloatField)不能接受空字符串,如要想要在填写表单的时候这两种类型的字段为空的话,则需要同时设置null=True,blank=True。众所周知我们创建后台管理员时候是没有设置手机号的.报这个错就是告诉我们在数据库中已经存在一个管理员,且手机号为空,我们再次创建管理员就会有手机号重复的现象存在从而报这个错. username重复时同样出现以下问题。
2023-11-11 22:41:31
591
原创 14.Web框架
CSRF(Cross-site request forgery)攻击,中文名是跨站请求伪造比如现在有两个网站,A网站是真实受信任的网站,而B网站是危险网站。当你登陆A网站后,浏览器会将A网站服务器给你生成的 sessionid 存入 cookie,有了这个 cookie,就拥有了你的帐号权限,以后请求访问,就不用再次登陆在cookie的过期时间之内,你去访问了恶意网站B,它给你返回一些恶意请求代码.要求你去访问网站A,这样你的浏览器就会在不知情的情况下去访问可信网站A。
2023-10-29 15:33:09
263
原创 算法基础:图
我个人将图论的学习分成了五个境界。知道图有啥用,和其他数据结构联系在哪,区别在哪。会对图进行遍历,包括 bfs 和 dfs会图的经典算法。比如 bellman A*知道这道题目该用图的哪个算法,有可能写不出来或者细节写不对。能灵活使用经典算法解决各种题目。那么你是哪个境界?理解图的常见概念,我们就算入门了。接下来,我们就可以做题了。一般的图题目有两种,一种是搜索题目,一种是动态规划题目。第一步都是建图第二步都是基于第一步的图进行遍历以寻找可行解。
2023-09-17 17:53:18
1431
原创 5.Socket网络编程
通过套接字可以进行数据发送或接收 {IP:Port}==>> 套接字。套接字(socket)是抽象概念,表示TCP连接的一端。select:线性扫描所有监听的文件描述符fd。Epoll:使用红黑树管理数据结构,性能好。Linux一切皆是文件,文件类型。poll:同选择性能有所优化。TCP连接由两个套接字组成。
2023-08-26 15:04:28
225
原创 Docker的Docker-compose
是Docker官方编排(Orchestration)项目之一,负责快速的部署分布式应用。参考:1.2.
2023-05-02 10:51:27
215
1
原创 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
387
原创 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
403
1
原创 Docker的网络模式
不涉及网桥模式中底层开销,因此速度与常规的主机网络一样快,面向外部网络流量大的容器(例如代理和缓存)可以使用主机模式,而其他容器则使用内部网络模式。Bridge模式是启动容器时的默认模式,当Docker server 启动时,会在主机上创建一个名为 docker0 的虚拟网桥。container创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享 IP,端口范围。Host:容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的IP和端口。表示把容器之间的通信关闭,
2023-04-04 08:34:28
1102
原创 python的元类
元类(metaclass)就是创建类的模板type是Python在背后用来创建所有类的元类 连type自己也是由type自己创建的metaclass: 超越变形特性 , 类是元类的实例,所以在创建一个普通类时,其实会走元类的__new__, 对普通类进行实例化时,实际是对一个元类的实例(也就是普通类)进行直接调用,所以会走进元类的__call__
2023-04-01 22:20:53
271
原创 Python的GIL全局解释锁
CPython 中还有另一个机制,叫做 check_interval, CPython 解释器会去轮询检查线程 GIL 的锁住情况.每隔一段时间,Python 解释器就会强制当前线程去释放 GIL,这样别的线程才能有执行的机会。多个线程执行时,每一个线程在开始执行时,都会锁住 GIL,以阻止别的线程执行,同样的,每一个线程执行完一段后,会释放 GIL,以允许别的线程开始利用资源。因为 CPython 大量使用 C 语言库,但大部分C语言库都不是原生线程安全的(线程安全会降低性能和增加复杂度)
2023-03-26 10:11:05
244
原创 python的多继承
当一个类存在继承,且已经在子类中重写相应的变量,改变父类的变量不会对子类有影响。方法二:super(本类名,对象).方法名()方法一:父类名.方法名(对象)
2023-03-25 22:18:13
436
原创 python的面向对象
(Python 中非常有名鸭子类型:一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子)当一个类存在继承,且已经在子类中重写相应的变量,改变父类的变量不会对子类有影响。继承:继承使的子类不仅拥有自己的属性和方法,还使用父类的属性和方法。抽象:抽象使得不同的子类和相同的方法和属性形成父类。方法二:super(本类名,对象).方法名()封装:使的代码更加模块化,代码复用度高。多态:多态使得相同的方法具有不同的功能。面向对象的四要素,以及他们之间的关系。方法一:父类名.方法名(对象)
2023-03-25 21:37:54
596
原创 3.HTTP
2.HTTPS 协议的服务器必须要有一套数字证书 ,可以自己制作,也可以向组织申请,自己颁发的证书需要向客户端验证通过,申请的证书不会弹出提示页面(startssl可以免费申请)4.客户端解析证书,这部分由客户端的tls连接来完成,验证公钥的颁发机构,过期时间,如果验证证书没问题,会生成一个随机值,然后用证书对随机数进行加密。2.http是明文传输的,https是由ssl+http构建可进行加密传输身份认证的网络协议,可防止数据内容被窃取篡改,比http协议更安全。3.传输证书(证书就是公钥)
2023-03-21 08:08:08
149
原创 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
168
原创 python常见的四种数据结构
插入操作:每次向字典和集合中插入一个元素,会首先计算键的哈希值(hash(1)),再和mask=PyDicMinSize-1(字典和集合的长度)做与操作,计算这个元素应该插入哈希表的位置index=hash(key)&mask,如果index的值为空则插入,如果不为空,则比较两个元素的哈希值和键是否相等,相等则更新该值,不相等的则是哈希冲突,需要通过线性寻址(开放寻址),直至找到表中空余的位置。3.字典适合进行查找(O(1)),添加(O(1)),删除(O(1))操作。
2023-03-20 08:10:08
463
原创 python的上下文管理器
循环打开1000万个文件,且用完之后不关闭,会照成资源泄露,并报如下错。2.创建临时目录,使用完后再删除临时目录。2.使用上下文改善异常处理。1.实现文件的打开和关闭。1.实现文件的打开和关闭。
2023-03-18 15:47:45
150
原创 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
107
原创 4.Redis总结
ziplist:通过一个连续的内存实现list结构,其中每个entry节点保存前后节点长度信息,实现双向链表功能。以追加的方式记录redis操作日志的文件.可以最大程度的保证redis数据安全,类似于mysql的binlog。某个访问非常频繁的热点数据,缓存中没有数据,访问该数据的大量请求,一下子都发送到数据库,导致数据库压力激增。):将内存数据保存到磁盘的二进制文件dump.rdb中( 主从复制就是基于RDB持久化功能实现)基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能。
2023-02-19 17:33:50
56
原创 Mysql总结
事务(transaction)是数据库并发控制的基本单位,事务可以看作是一系列sql语句的集合,事务要么全部执行成功要么全部执行失败,常见操作:转账场景。索引是数据表中一个或者多个列进行排序的数据结构.索引能大幅提升检索速度,创建,更新索引本身也会消耗空间和时间。第二范式:所有的字段必须完全依赖主键,不能只依赖主键的一部分。慢查询通常是缺少索引,索引不合理或者业务代码实现导致。第一范式:所有的字段都是基本数据字段,不可进行拆分。什么是B-Tree,为什么要使用 B-Tree。什么是乐观锁,什么是悲观锁。
2023-02-13 21:24:14
45
原创 树:二叉树和二叉堆
深度优先:前序遍历,中序遍历,后序遍历广度优先:层序遍历二叉堆本质上是一种完全二叉树,它分为两种类型:最大堆和最小堆二叉堆的存储方式:顺序存储在数组中,已知父节点其左节点为2×parent+1,右节点2×parent+2。
2022-12-12 21:55:13
524
原创 python的Pandas
df.loc[, ] 如列表达式部分不传,将返回所有列,Series仅支持行表达式进行索引的部分loc操作通过索引和列的条件筛选出数据.如果仅返回一条数据,则类型为Series。数据透视表,顾名思义,是指它有“透视”数据的能力,可以找出大量复杂无关的数据的内在关系,将数据转化为有意义、有价值的信息,从而看到它所代表的事物的规律和本质。at类似于locdf.at[,]如果是一个Series,可以直接值入索引取到该索引的值iat和iloc一样,仅支持数字索引。
2022-12-10 17:16:56
1269
原创 python三高问题分析
模拟高内存场景:利用两张表df1和df2以第一列做为连接键进行外关联,每张表中作为连接键的列相同的数据越是多,cprofile:分析哪一个功能模块效率低,延迟高,占用资源多。在进行外关联时形成新表数据就会成指数积增长。显示所有包含其他使用者的进程。1.top命令查看cpu使用情况。5.查询某个目录下的具体文本。测试linux的性能。
2022-11-28 08:54:55
430
原创 8.JWT认证
JWT ( Json web token)认证机制, 为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准, 该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景http协议本身是一种无状态的协议,为了知道哪个用户发出的请求,服务器必须存储一份用户登录的信息,这会登录信息又在响应时传递给浏览器,用cookie保存起来,以便下次请求时发送给浏览器token认证不需要在服务端保留用户的认证信息,token认证流程如下用户使用用户名密码来请求服务器服务器进行验证用户的信息。
2022-09-25 14:55:07
359
原创 Python的加密
PKI(Public Key Infrastructure ) 简称公钥基础设施 ,它是一个在数字世界里用来认证用户或者设备的技术,由一些受信任的机构签发一个特殊的“文件”来证明一个秘钥属于特定的用户和设备,用户和设备从而可以使用该认证过的秘钥来代表自己的身份,进行消息的传递。•接收方通过秘钥和消息计算出MAC值,如果计算的MAC和接收到的MAC值相同,则可以说明消息违背第三方篡改。•消息发送方把未加密的消息,连同消息+秘钥计算出的MAC值发送给消息接收方。•通过公钥对签名消息进行解密,取得哈希值H2。
2022-09-20 08:34:25
1837
原创 5.Vue
整个项目是一个主文件index.html,index.html中会引入src文件夹中的main.js,main.js中会导入顶级单文件组件App.vue,App.vue中会通过组件嵌套或者路由来引用components文件夹中的其他单文件组件。9.创建webpacke打包的配置文件webpack.config.js, 需要指定相应的配置文件,同过配置文件对单文件组件中的各个内容进行解析,生成一个index.js的压缩文件,在index.html只需引该文件就可进行页面加载渲染。8.创建main.js文件。
2022-09-06 07:39:40
272
原创 12.Python_行为型模式_模板方法
12定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤角色(AbstractClass) 定义抽象的原子操作(钩子操作),实现一个模板方法作为算法的骨架(ConcreteClass) 实现原子操作优点1、封装不变部分,扩展可变部分。2、提取公共代码,便于维护。3、行为由父类控制,子类实现缺点1.每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大应用场景1、有多个子类共有的方法,且逻辑相同。
2022-08-22 08:31:15
210
原创 13.Python_行为型模式_策略模型
12定义一个类的行为或其算法可以在运行时更改角色(Strategy)(Context)优点1.算法可以自由切换。2.避免使用多重条件判断。3.扩展性良好。缺点1.策略类会增多。2.所有策略类都需要对外暴露。**注意事项:**如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题应用场景1,如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。2,一个系统需要动态地在几种算法中选择一种。
2022-08-22 08:29:01
100
原创 12.Python_行为型模式_观察者模式
12定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新角色(Subject)优点1,观察者和被观察者是抽象耦合的. 2,建立一套触发机制。缺点1,如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。2,如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。3,观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的,而仅仅只是知道观察目标发生了变化。
2022-08-22 08:17:24
246
原创 11.Python_结构型模式_责任链模式
12定义避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止角色抽象处理者(Handler)(Client)优点1.降低耦合度,它将请求的发送者和接收者解耦.2.简化了对象,使得对象不需要知道链的结构.3.增强给对象指派职责的灵活性.通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任。4.增加新的请求处理类很方便缺点1,不能保证请求一定被接收。
2022-08-22 08:12:48
74
原创 10.Python_结构型模式_代理模式
12定义为对象提供一种代理以控制这种对象角色抽象实体(Subject)实体(RealSubject)代理(Proxy)优点**远程代理:**可以隐藏对象位于远程地址空间的事实可以进行优化,例如根据需求创建对象**保护代理:**允许在访问一个对象的时候有一些附加的内务处理缺点1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂应用场景按职责来划分,通常有以下使用场景:1.远程代理。
2022-08-22 08:07:19
84
原创 9.Python_结构型模式_外观模式
12定义为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用角色外观子系统类优点1.减少系统相互依赖,子系统相对独立2.提高灵活性.3.提高了安全性,为复杂的模块或子系统提供外界访问的模块,预防低水平人员带来的风险缺点不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。应用场景1.去医院看病,可能要去挂号,门诊,划价,取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便.2.JAVA 的三层开发模式。
2022-08-21 21:55:29
125
虚拟上启动的jenkins容器无法通过Windows主机上的浏览器直接访问
2023-04-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人