- 博客(15)
- 收藏
- 关注
原创 鉴权登录的实现方式
在访问web服务的场景中,对于某些特定的操作,用户需要登录才能进行,而且web服务需要记住登录用户,并在指定时间后忘记该用户,以便保证其安全性。CookieSessionJWT本文介绍了实现用户登录状态保持的三种方式:cookie、session和JWT,并进一步分析了其优缺点。
2025-01-07 10:19:04
874
原创 数据结构-堆
堆是一种特殊的树形数据结构,广泛应用于优先队列、堆排序和图算法等场景。本文旨在介绍二叉堆的基本操作,剖析其实现细节,并进一步探讨具体的应用场景。本文介绍了二叉堆的基本信息,然后分析了堆在若干实际场景中的应用。
2024-11-09 12:47:44
1036
原创 递归算法的理解
递归算法是算法体重举足轻重的一个章节,网上也存在对该算法的讲解。但是遇到实际问题,读者往往是一看就会,一做就错。有没有能够帮助读者更好理解递归算法的办法?本文将递归算法分为两类问题:枚举类和非枚举类问题,然后对每种问题给出一个固定的套路去计算。本文对递归思路进行了感性的分析,举了递归中的几个典型例子,将其分为枚举法递归和非枚举法递归,对每种类型的问题总结了一般思路,希望能对读者有帮助。
2024-10-23 11:05:53
1045
原创 python的字符串类型str和Unicode的区别
每个python2新手遇到第一课都是编码问题,会发现无法输出中文字符串。然后网上一搜索,都是各种技巧,很少有人仔细深入地讲解python2中的编码问题。于是,本文试图对python2中的编码问题做一个简单梳理,帮助读者建立一个直观的印象。python2中的字符串类型其实是Unicode类型,而非str类型。str类型实际上就是字节序列,而Unicode类型才是字符序列(字符串)。但是,在python代码中默认str类型才是字符串类型。a = "abc"# 输出。
2024-10-18 23:57:59
1285
原创 受限后台的实现方式
笔者遇到了需要为linux后台新增一个低权限的用户,该用户只能执行特定的脚本A(脚本A中则不限制),除此外什么命令也不能执行。经过一番了解,笔者初步发现有三种方式可以实现需求,分别是rbash、chroot和容器化。本文分享了实现隔离环境的一些基本方法,重点介绍了rbash和chroot的功能。
2024-10-16 19:52:39
645
原创 背包问题求解
背包问题是算法中的一个经典问题,在面试中也会遇到,但是对一般人来说还是一个比较困难的问题,本文试图探讨一下背包问题中的0-1背包问题,试图将问题变得更加简单和容易理解。本文以0-1背包问题为线索引出了其他两种背包问题,我们发现其他形式的背包问题都可以转换成0-1背包问题,然后按照0-1背包问题的方式进行解答即可。
2024-10-13 00:35:11
1103
原创 文件锁filelock源码解读
笔者遇到需要在不同的进程中访问同一个文件的场景,但是这个文件是临界资源,不能同时访问,因此需要利用锁机制来控制不同进程之间的访问。于是,引出了进程锁(即文件锁)这个概念。经过查阅资料,笔者发现filelock库可以满足我们的要求。笔者在使用之余也想看看到底是怎么实现的文件锁,于是便对源码(3.2.1版本)做了解析。以上就是今天要讲的内容,本文介绍了filelock中的几个核心类,经过粗略的了解,读者应该对如何使用filelock类有几分心得了。
2024-07-17 14:17:08
1291
原创 subporcess模块超时杀死子进程问题
笔者在工作中常常使用subporcess模块来执行shell命令,偶尔会遇到命令卡死的问题,这时需要利用到超时机制进行补救,防止某条命令进入卡死状态,导致整个程序卡顿。由于工作中用到的是python2.7,没有超时设置的参数,因此需要笔者自行设置超时机制。本文简单介绍了subprocess 的popen开启的子进程情况以及如何杀死子进程等知识。
2024-07-16 11:00:21
833
1
原创 python正则表达式使用
在文本中,我们常常需要查找特定的字符串。比如分析日志时我们会更加关注ERROR字样,然后定位到相关的位置。当然一个ctrl + F足以满足我们的需要,但是当我们需要找到以ERROR开头的行时,我们又该怎么做呢?普通的查找会将ERROR位于中间的行一并查找出来。只有正则表达式能够满足我们的要求。本文仅仅简单介绍了正则表达式的基础用法,然后结合python编程语言的re模块举了几个例子。
2024-01-30 21:44:08
1018
原创 Python logging模块源码解读
日志是项目中排查故障、分析故障的重要手段,用好日志模块是一个基础的要求。python的日志模块功能强大单也很让人迷惑,各种,各种日志等级,既可以直接输出,也可以这样使用,让人很费解。本博客致力于帮助大家了解背后的秘密。以上就是今天要讲的内容,本文仅仅简单介绍了logging模块的基本行为,有助于读者了解logging模块中的各种概念,从而更好地使用logging模块。参考引用。
2024-01-26 00:29:27
1623
1
原创 python-pptx生成PPT报告
存在这样一个需求,需要使用数据渲染生成一个PPT报告。经过一番查询,笔者决定使用python-pptx来完成这个需求。python-pptx作为一个功能强大的第三方库,完全可以满足笔者的需求。以上就是今天要讲的内容,本文给出了生成PPT的一个解决方案,可以通过替换元素数据内容的方式生成一个PPT。
2024-01-19 23:25:15
2613
原创 subprocess的死锁情况分析
经常有这样的一些需求,需要在linux系统后台调用命令获取特定的输出。subprocess就是这样一个专门用作执行shell命令的模块。笔者在工作中经常需要用到这个模块,遇到了一些问题,在此和大家讨论一下。以上就是今天要讲的内容,本文分析了产生死锁的两个原因:分别是管道大小限制和异步机制。本次问题就是异步导致的死锁。
2024-01-18 19:27:34
1476
原创 红黑树解读(一)
红黑树是一种高效的二叉搜索树,平均查找性能要比普通的二叉树要高效,也经常出现在各种面试当中,但是红黑树的构建也确实相当复杂。相比其他博客一上来就介绍各种复杂的概念,本文从普通的二叉树开始,介绍如何构造一棵红黑树。以上就是今天要讲的内容,本文从二叉搜索树开始,然后引出红黑树,介绍了红黑树插入的各种情况,最后还介绍了如何输出一个直观的二叉树。删除操作可能在后续篇章给出。
2024-01-14 19:05:06
844
原创 requests库源码分析(一)
据说,python的requests库是极具pythonic风格的三方库,于是决定认真阅读一番requests源码,记录总结一番,以飨读者。以上就是对request模块中核心的几个类之间的相互关系做了一个简单的介绍,初步了解了requests中一个请求的具体流程以及核心的发送请求的方法:urllib3的urlopen方法。
2024-01-10 00:47:40
1297
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人