自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Null的博客

熟悉大数据,云计算,虚拟化容器,python全栈及各种Devops的西二旗最帅程序猿

  • 博客(462)
  • 资源 (3)
  • 收藏
  • 关注

原创 【带你上手云原生体系】第四部分:Kubernetes 圣经 【完整生态、生产必备、一文精通、无需再学】大量图文请慎入

【带你上手云原生体系】第一部分:文章简介 及 云原生思维概览【带你上手云原生体系】第二部分:Go语言从入门到精通【带你上手云原生体系】第三部分:Docker从入门到精通

2022-07-20 16:43:23 1550

原创 跨域问题解决方案之CORS

浏览器安全的基石是"同源政策"(1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。CORS方案,服务器处理的逻辑就是按照浏览器的这套规范,对相应的头部做出设置即可。

2024-04-04 04:13:10 1007

原创 CSRF介绍及Python实现

你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

2024-04-04 04:10:50 905

原创 Python 装饰器decorator 圣经

实际上在Python的语法层面,任何的东西都可以调用,只不过如果这个东西不是callable的话,会在Python的runtime时会出错。在Python里,自定义的class类的实例,如果我们直接打印实例,是不会打印出任何有价值的信息的,只会打印出这个实例对象是一个什么类。装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变)。当我们理解了函数在Python中只是一个普通的对象后,我们就可以理解函数可以被当作参数传进其他的函数里。

2024-03-12 20:59:50 686

原创 Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python)

简而言之,Python 中的 Iterable 对象是一个可以被遍历(通过 for 循环)的对象。Iterator 是 Iterable 的子类,但它包含一个产生项item的方法而不是项items本身。首先,我们应该知道 可迭代的对象Iterable 和 迭代器Iterator 是不同的。Iterator 也是 Iterable,因为它是 Iterable 的子类。Iterator 只保存方法而不是项items,它是 Iterable 的子类,以减少时间和空间成本。在简单的情况下,我们可以在。

2023-12-31 14:25:07 962

原创 动态令牌的原理(OTP & HOTP &TOTP)

2FA,全称 Two-Factor Authentication,中文名叫 双重因素认证。OTP(One-Time Password,中文名:一次性口令)HOTP(HMAC-based One-Time Password)HMAC(Hash-based Message Authentication Code,中文名:基于哈希的消息认证码)TOTP是基于时间的一次性密码(Time-based One-Time Password)

2023-12-31 13:49:19 1521

原创 Python生成器 (Generators in Python)

只要一个函数function中使用了 yield 这个关键字,就代表这个函数function每次调用时返回的是一个生成器对象 generator object。这个生成器对象的类型是。包含 yield 语句的函数function本身并不是生成器generator,它仍然是一个函数function。生成器是一个类class,而不是函数function。生成器是迭代器Iterator的一个子类。生成器保存的是产生item的生成方法/算法,而不是items

2023-12-30 12:03:13 1489

原创 Python 中的异常处理

有些错误是由我们的代码造成的。例如,当我们打开一个文件并对其进行一些操作operations时,我们应该确保最终finally关闭该文件。幸运的是Fortunately,Python 有一个内置的异常处理机制built-in exception handling mechanism,可以帮助我们方便地处理异常。如上例所示,当我们考虑到代码的某些部分可能会发生异常may occur exceptions时,可以将其放入。来捕捉不同类型的错误。因此,我们的代码更加健壮,因为它可以处理两种类型的异常。

2023-12-29 21:28:32 1059

原创 在 Python 中跳出嵌套循环的 5 种方法

我们都知道,Python 是一种优雅的编程语言。但任何事物都有弱点。有时,Python 并不那么优雅。关键字keyword只能帮助我们跳出最内层的循环inner-most loop。我们能直接同时跳出两个嵌套循环two nested loops吗?Python 中是否有一些内置关键字built-in keywords或技巧tricks?遗憾的是,该操作没有内置支持no built-in support。俗话说:“比较是快乐的小偷comparison is the thief of joy”。

2023-12-29 20:59:38 1886

原创 在 Python 中编写循环Loops的艺术

循环是大多数编程语言中非常基本的控制流工具。对于复杂的场景,我们通常需要编写难看的嵌套循环nested loops或定义大量辅助变量assistant variables(如上述代码中的i幸运的是,在 Python中事情就变得方便多了。我们有很多技巧来编写更优雅的循环loops,它们确实让我们的生活变得更轻松。

2023-12-29 20:01:16 1060

原创 通过 LEGB 规则掌握 Python 范围Scope

对于内层函数inner functions来说,外层函数outer functions中的变量既不是局部变量local variables,也不是全局变量global variable,而是 非局部变量nonlocal variables也称为封闭变量enclosing variables。如果我们要在内部函数inner function中改变非局部变量nonlocal variables也称为封闭变量enclosing variables(你也可以理解为外层变量),则需要。关键字语句一样简单。

2023-12-29 16:15:09 906

原创 Python 中下划线Underscores的四种使用场景

这是 Python 解释器的一个有趣的小技巧。我们可以使用一个下划线简单地获取最后一个表达式的值last expression’s value。

2023-12-29 15:29:04 932

原创 Python中闭包Closure的5个层次

闭包closure是嵌套函数nested functions中的一个概念concept。如果你还不了解闭包closures,上面的例子可能会让你很头疼。我们已经删除了outer_func函数function。但是,f()仍然可以打印 “Zhang San”,它是outer_func函数function的局部变量local variable。为什么删除outer_func函数后它的局部变量local variable仍然存在?显然,这不是因为"Zhang San"是魔术师。

2023-12-29 14:01:22 903

原创 在Python中使用列表推导式List Comprehension的8个层次

列表表达式是一种非常具有 Pythonic 风格的技术,能让你的代码变得非常优雅。不过,它的语法有点令人困惑,尤其是对于新手和来自其他语言的程序员来说。我读过很多关于它的资料,但说实话,没有一本能完美地展示列表理解的全貌,以及它有多么强大和美丽。因此,我写了这篇文章。本篇文章将由浅入深elementary to profound地展示使用列表表达式list comprehension的 8 个层次。在了解了所有 8 个层次之后,掌握列表表达式list comprehension就变得易如反掌了。

2023-12-29 12:12:42 1473

原创 Python中星号的5种用法

星号asterisk被称为乘法运算符multiplication operator,是所有程序中常用的符号。我们只需将其用作乘法运算符即可。但是,如果你真的想成为一名 Python 专家expert。是时候了解星号asterisk在 Python 中的作用useful和功能powerful了。本篇文章将用最通俗易懂的例子,由浅入深地讲解星号的 5 种使用场景。

2023-12-29 10:58:56 1062

原创 在 Python 中使用装饰器decorator的 7 个层次

装饰器decorator只是 Python 的一个函数式编程特性functional programming feature。装饰器decorator接收一个可调用对象callable(函数function、方法method或类class),并返回一个可调用对象callable。上述函数是一个简单的装饰器decorator。它在接收函数运行前打印作者姓名。如果函数需要使用该装饰器,我们可以在函数顶部的"@"符号后添加该装饰器。

2023-12-28 22:28:15 785

原创 在 Python 中使用上下文管理器context manager的 5 个层次

由于每台机器的计算资源都是有限的,因此每个程序都需要考虑资源管理。比如文件处理,最好在使用完文件后将其关闭。files = []因此,只要不再需要,就应关闭每个已打开的文件。Python 有相对的内置函数built-in functions,因此我们可以方便地打开和关闭文件。")f.close()上述程序是可行的。但是,如果open()和close()之间的处理过程变得更加复杂,并且出现错误,那么没有人能够保证文件最终会被关闭。

2023-12-28 20:46:09 910

原创 19个Python语法糖和9个内置装饰器

lambda 函数(或称为匿名函数anonymous function)是一种语法糖,可以在 Python 中轻松定义一个小函数,使代码更简洁、更短小。lambda 函数的一个常见应用是用来定义内置sort()在上面的示例中,定义了一个接收变量并返回其长度的 lambda 函数,作为列表排序的比较方法。当然,我们也可以用正常的方法在这里写一个完整的函数。但鉴于这个函数非常简单,将其写成 lambda 函数无疑更简洁明了。

2023-12-28 19:53:46 990

原创 Python Socket编程

socket编程是理解异步IO、协程的基础。是必须要掌握的。Socket在整个网络模型中,可以让我们直接脱离应用层而自动帮我们与底层协议打交道,这样我们就可以完成很多的功能哦。

2023-12-14 12:22:35 1143

原创 Python的yield生成器对象底层原理及协程思想的由来

堆内存的特性是:不去释放它,它就会一直存在于内存当中。生成器对象也是分配在堆内存当中的,所以生成器对象可以独立于调用而存在。所以只要我们拿到生成器对象,每一次调用都会重新生成栈帧对象,这样我们就能控制它继续往前走。所以我们在代码的任何地方只要拿到生成器对象,都可以去恢复它、去暂停它。正是因为这一特点,才有了协程哦!因为这就是协程的理论基础。

2023-12-13 12:50:49 594

原创 Python iterable(可迭代)和iterator(迭代器)底层源码剖析,简称【迭代器圣经】

Python 迭代器圣经,一篇精通!注意是【精通】,而非千篇一律。从反汇编讲原理,从源码讲设计思想,顺便帮你解惑为什么__getitem__被那么多人误认为是可迭代类型?之所以写摘要是怕你错过这么好的文章。

2023-12-12 15:59:51 1222

原创 Python 详解__init_subclass__类方法

【代码】Python 详解__init_subclass__类方法。

2023-12-09 15:23:08 559

原创 Python异常继承树图

没有文字,因为图足够好。

2023-12-09 00:58:16 343

原创 Python中type、object和class的关系,一图即懂

没有文字描述,因为图足够好!

2023-12-09 00:55:46 442

原创 Python的内存管理机制及两种垃圾回收机制,一篇即通!

在大多数情况下,当一个对象没有被任何其他对象引用时,Python的垃圾回收器会自动删除这个对象。但是在这个例子中,尽管。这就是为什么最后两次打印的结果都是1的原因。这个例子展示了Python中循环引用和垃圾回收的一个特性。被删除了,但是由于它们相互引用,所以它们实际上并没有被完全删除,这就造成了一个循环引用。并没有被完全删除,所以数量仍然是1。函数来计算当前Python环境中。类的实例数量,这时候数量都是1。听不懂很正常,先扫一眼有个印象。这段代码首先创建了两个类,,然后创建了这两个类的实例。

2023-12-09 00:47:44 1314

原创 jetbrains卡顿(Pycharm等全家桶)终极解决方案,肯定解决!非常肯定!

话越短,越有用,一共四种方案,肯定能解决!!!非常肯定!!下面四种解决方案,笔者按照实际体验后的结果,按照优先级从高到低排序。你只要按顺序试试就知道了。

2023-12-08 12:09:47 1246

原创 Python super()详解

【super不是调用父类方法】,这一点切记!!!super只是个代理,作用是沿着MRO链条,找到下一级节点,去调用对应的方法。

2023-12-07 22:25:59 563

原创 Python继承的设计及演化

为什么要单独研究Python的继承呢?因为Python中是存在多继承的。在 概念明确 阶段,如果看不懂,可以先往后面看,有代码例子,你肯定会明白的。

2023-12-03 20:40:51 973

原创 Cookie、Session、Token、JWT

HTTP 是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行 会话跟踪(知道是谁在访问我),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过 cookie 或者 session 去实现。

2023-09-09 14:51:43 1011

原创 Python contextlib模块

来写就很繁琐很复杂。装饰器的生成器方法,会把。如果我们每一段都通过。

2023-09-09 12:32:13 353

原创 Python并发 & 并行 、同步 & 异步、阻塞 & 非阻塞 以及代码实现

线程安全:指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。线程不安全:由于线程的执行随时会发生切换,就造成了不可预料的结果,出现线程不安全协程可以在单线程内实现并发。整体上还是单线程执行的,但是原理就是超级循环,在CPU遇到IO的时候不会等待,而是切换到下一个任务继续执行,而执行完一遍所有的任务后,会回来继续执行一遍任务,挨个轮询的进行。至尊循环驭众生至尊循环寻众生至尊循环引众生普照众生欣欣荣# 获取事件循环# 定义协程。

2023-09-08 17:48:44 2399 1

原创 Python 日志记录:6大日志记录库的比较

日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程。虽然某些编程语言提供内置日志记录模块作为其标准库的一部分,但大多数日志记录框架都是第三方库,例如logging(Python)、Log4j(Java)、Zerolog(Go) 或Winston(Node.js)。有时,组织会选择开发自定义日志记录解决方案,但这通常仅限于具有高度专业化需求的大型公司。虽然 Python 在其标准库中提供了强大且功能丰富的日志记录解决方案,但第三方日志记录生态系统也提供了一系列引人注目的替代方案。

2023-07-30 18:46:58 8018

原创 pyenv + poetry

我们不要安装,而是应该使用Poetry进行虚拟环境的管理,这样可以做到思路清晰,而Poetry的虚拟环境更加的方便好用。再次强调:有了 Poetry,就不要再装了。

2023-07-16 22:31:26 927

原创 Python垃圾回收

GC彻底把程序员从资源管理的重担中解放出来,让他们有更多的时间放在业务逻辑上。但这并不意味着码农就可以不去了解GC,毕竟多了解GC知识还是有利于我们写出更健壮的代码。

2023-07-16 22:30:07 364

原创 布隆过滤器在海量数据去重验证中应用

看了上面的说明,必然会提出一个问题:当插入的元素原来越多,位数组中被置为 1 的位置就越多,当一个不在布隆过滤器中的元素,经过哈希计算之后,得到的值在位数组中查询,有可能这些位置也都被置为 1。但是如果布隆过滤器判断说一个元素不在布隆过滤器中,那么这个值就一定不在布隆过滤器中。当要判断一个值是否在布隆过滤器中,对元素再次进行哈希计算,得到值之后判断位数组中的每个元素是否都为 1,如果值都为 1,那么说明这个值在布隆过滤器中,如果存在一个值不为 1,说明该元素不在布隆过滤器中。中的K个点,把它们置为1。

2023-07-16 22:28:19 320

原创 HTTP协议原理深入解读(开发者必读版)

TCP连接精讲、HTTP协议精讲、HTTP Headers逐字讲解、浏览器基本原理、开发者必备技能。

2023-07-10 23:07:31 259

原创 Nginx快速上手

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2023-04-23 14:44:09 505 1

原创 Gin十分钟上手做GoWeb

Go是一门正在快速增长的编程语言,专为构建简单、快速且可靠的软件而设计。golang提供的net/http库已经很好了,对于http的协议的实现非常好,基于此再造框架,也不会是难事,因此生态中出现了很多框架。Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APl。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确。具有快速灵活,容错方便等特点。Beego:开源的高性能Go语言Web框架。

2023-04-23 02:02:16 533

原创 Redis从零上手

一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候更多的是使用静态网站(HTML),服务器根本没有太大压力。思考一下,这种情况下:整个网站的瓶颈是什么?数据量如果太大,一个机器放不下了。单表的数据超过300万就一定要建立索引了,mysql的索引用的是(B+Tree),一个机器内存也放不下。如果数据库的访问量太大(读写混合),一个服务器承受不了。只要你开始出现以上的三种情况之一,那么你就必须要晋级!NoSQL = Not Only SQL (不仅仅是SQL)

2023-04-22 22:35:44 588

原创 Python操作 JWT(python-jose包)、哈希(passlib包)、用户验证完整流程

JWT 即JSON 网络令牌JWT(JSON Web Token) 是一种用于在身份提供者和服务提供者之间传递身份验证和授权数据的开放标准。JWT是一个JSON对象,其中包含了被签名的声明。这些声明可以是身份验证的声明、授权的声明等。JWT可以使用数字签名进行签名,以确保它不被篡改。JWT 是一种将 JSON 对象编码为没有空格,且难以理解的长字符串的标准。JWT 字符串没有加密,任何人都能用它恢复原始信息。jwt官网及在线解码但 JWT 使用了签名机制。接受令牌时,可以用签名校验令牌。

2023-01-18 17:28:37 6743 1

AZ-900_186Q详细讲解版(2020.09.02版本).docx

更新至2020年09月02日, 一共有186道题,修正了机器翻译的错误,加入了portal截图,完善了每一个选项的原因分析。当之无愧最用心,截至目前最全版本。已通过azure900考试(880分),配合本人《azure900考题知识点总结(附送2020年8月31日最新186题库)》的博文(来自微软官方的知识点图谱,囊括95%考点知识)。摆脱了传统的背题,让你真正了解azure基础知识。。一篇文档带你拿下小徽章!

2020-09-02

AZ-900_186Q题库(英中结合)_考试原题.pdf

直接吹爆~手动整理12个小时,中英文对照版本(非翻译软件无脑翻译),186题(2020年8月30日更新),真题题库,有详细知识点讲解,告诉你为什么选这个,错误的原因是什么,有azure portal截图,图文并茂,老少皆宜,一件入手,900到手。改变就从此刻开始~

2020-08-30

GnuPG-2.2.20.dmg

跨平台加密软件,macos系统可用。 GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。

2020-08-26

空空如也

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

TA关注的人

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