自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux安装mysqlclient

yum install mysql-develpip3 install mysqlclient

2022-01-23 19:57:30 2603 1

转载 linux中 .zip .gz .tar 的差别及解压缩命令

一、Linux下最常用的压缩文件就是.tar了,使用tar程序打出来的包我们常称为tar包。  对于tar包,可以再用gz,zip等压缩算法再次压缩,比如:jdk-8u181-linux-x64.tar.gz二、解压缩命令  tar (可以保留原文件,可以压缩文件夹)    -c: 建立压缩档案    -r:向压缩归档文件末尾追加文件    -x:解压    -z:是否需用用gzip压缩;    -t:查看内容    -v:显示所有过程    -f: 使用档案名字,切记,这个参数是最后一

2021-12-17 09:57:18 1087

原创 shell编程基础: menu drvien script template(菜单脚本模板)

前言菜单类脚本,其实就是我们经常使用的交互脚本。在我们安装一个app的时候最常见,我们需要使用交互脚本进行一些配置。在工作中,写一个交互性脚本也同样重要,比如我现在需要写一个数据库授权的脚本。上下文是这样的:我们在开发中都是使用docker部署mysql,这样的话在一台物理机上就可以使用多个mysql了。但是有些小伙伴对于docker这一套并不熟悉,给他们写个指引有时候也搞不清。所以我决定写一个脚本给他们,通过执行脚本交互性脚本配置对外端口、数据挂载、用户创建、数据库创建等功能。后面我觉得脚本写的能

2021-05-25 17:23:58 435

原创 shell编程基础: $系列符号集的使用

目录前言一、$符号集用法详解1、$用于获取变量2、${} 用于告诉变量分界,避免歧义3、${#} 用于获取变量长度4、脚本参数获取:$0 $1 $2 $n $# $* $@5、$? 判断上一个命令是否执行成功。执行成功为值为0, 失败为非06、$()等同于双引号的作用7、$[ ] 表达式计算8、$- 显示shell所使用的当前选项9、$! 获取后台运行的最后一个进程的pid,多用于脚本10、!$ 将上一条命令的参数传递给下一条命令的参数,平时用于更方便,.

2021-05-25 09:19:53 1316 1

原创 网络基础:WSGI、CGI、Fastcgi、mode_python、mode_wsgi是什么?Python Web Frameworks / WSGI / CGI / FastCGI的工作流程?

前言这篇文章知识满满,如果大家看到这篇文章时,也正好是你想要了解的内容,请好好看。首先,先说点题外话。1、这篇文章纯属是我总结的一些stack overflow、python官方文档、其他英文资料形成的。我想说的是:有能力阅读英文的,直接去阅读英文资料。网上查阅中文的资料(比如CSDN)绝大多数就是浪费自己的时间。没有能力阅读英文的,逼着自己去读,除非你一点英文都不懂,时间长了自然就能阅读英文了。2、那么有人问,怎么找英文资料?有条件的直接google(需要proxy一下),没条件的上.

2021-04-28 16:59:05 675

原创 网络知识基础:gzip和chunk是怎样优化网页传输的?

目录前言一、文件传输的本质是什么?二、http传输文件三、http传输文件的方式 Content-length、chunk四、chunk实现的介绍前言最近在看http原理的书籍,对http传输有了更深的理解。结合网上搜索的知识,总结下http的流传输。一、文件传输的本质是什么?文件是什么?文件就是磁盘上的一段空间,文件的内容就是一串2进制数字(1或者0)。文件传输,就是把这串数字通过http协议传过去。服务器端,接到这段数据之后,按照协议规定的格式..

2021-04-11 20:36:35 815

原创 docker、k8s基础:mysql容器化部署,挂载data到宿主机

前言最近开发项目过程中,遇到一个问题。自己用docker起了一个mysql的容器,然后由于只是用来测试一下,就不会再用这个数据库了,所以就没有把mysql的数据目录挂载出来。其实也是因为我得mysql记录的数据对我没什么用,所以菜没有挂载数据。但是,意想不到的是,我用docker启的mysql所在的磁盘空间竟然被用满了。这是由于服务器是大家共享使用的,很多项目都在这台机器上布,还有一些同学没有删除无用镜像的习惯,所以很快1T的空间就用满了。要想扩容还要去找运维。然后我就看了看其他的磁盘,发现有块

2021-03-05 18:12:29 1044

原创 k8s/docker的真实容器化部署,模拟上线流程-详细

前言前面开发了几个项目,上线时都是固定一个同事负责的,当时看他花了挺久的时间,觉得肯定费事的。当时就在想,应该没有那么难把,为什么会这么久?然后这次上线,赶上同事不在,所以由我来准备上线的事情。我发现,流程不难,但也没有我想的那么简单。而最耽误时间的是上线资源的申请,如pvc、数据库等等,申请周期非常长。所以大家如果承担上线部署工作,一定要把流程和周期提前问清楚,要不然很容易错过上线窗口。一、部署流程说明废话不多说了,针对这次上线流程简要的做个说明。使用工具:docker、k8s

2021-02-27 22:41:55 1616 1

原创 python基础:如何从数据库加载代码并运行

前言最近在做一个微服务网关的项目。大概就是下面这张图,当然这是比较笼统的一张图,其实还有很多功能,但是今天它不是重点,所以就不多说它了。这个微服务网关项目其中的一些功能:(1)代理下游客户端发来的请求到微服务,并获取response后返给用户(2)记录下request、response、trace、exc_info等等的日志那么关于日志这里,大家可以参考一下。为了避免数据库压力过大,加了一层日志队列。从gateway产生的日志会先写入日志队列中,commiter模块定时从日志队列中取走日

2021-02-09 20:30:28 1282

原创 FastAPI基础:Depends怎么用?

目录前言一、Depends的是干什么的?二、Depends的两种用法1、Depends(function)形式2、Depends(class)形式三、拓展前言FastAPI真的是个非常好用的东西。首先它是异步,但是我想说的是Fast API对于保证数据交互传递过程中的一致性,保持的非常好。当然,能做到这一点也是因为它站在了巨人肩膀上,因为它的schema是依靠pydantic来做的。大家用Fast API的过程中会越来越发现,Fast API实现的东西并不..

2021-01-11 19:56:26 15409 1

原创 python基础:泛型Generic的坑-注意它只是提示符,而不能真正schema

目录前言一、证明Generic无法shema二、项目中遇到了什么问题,怎么解决的前言在写项目的时候,我实现了一个泛型容器,希望能够用来兼容多个实体的shema。但是这时候出问题了,我发现通过Generic容器传入的schema参数并没有什么用?这是为什么呢?原因就在于:泛型只是一个hint,可以帮助提示你应该输入什么类型的参数以及可以提示ID E此处应该传入什么参数,从而提醒你是否出错的参数。但是泛型(包括typing里的所有变量)并无法帮助你完成schema的功能。所以,.

2021-01-08 21:35:45 9038 4

原创 python基础: os.path.realpath()、os.path.getcwd()、 os.path.abspath() 的区别

目录前言一、realpath、getcwd、abspath各是干嘛的?二、常用应用场景前言在写代码过程中,经常会遇到 realpath、getcwd、abspath。但是对于他们的区别就傻傻分不清楚,对于他们应该在什么场景就更是不知道了。今天特别记录一下,今后有据可依。一、realpath、getcwd、abspath各是干嘛的?realpath 1、获取代码所在的脚本文件的绝对路径(用的多) 2、获取当前应用的真实路径,而非软连接路径(用得少) ab...

2020-12-28 15:47:50 4779 1

原创 《深入理解计算机系统》第三版重要知识点

目录前言第一章:计算机系统漫游前言最近在看《深入计算机系统》第三版,这本书是真的挺厚的。那我为什么要选读这本书来读呢?很简单,它的豆瓣评分9.7,并且是公认的经典著作,系统的讲解了贯穿计算机的整体的基础知识,包括了计算机操作系统,计算机硬件,计算机组成原理等等。而我对于计算机整体知识没有一个整体上的把握,不能够将所有知识串起来,我想这本书正是我需要的。那么我为什么又要写这篇博客呢?也很简单,发现自己的记忆力是真的不行。写这篇博客时,我刚读了本书2章内容(共12章,730页),前.

2020-12-24 16:15:24 437

原创 python基础:4种uuid详解

目录1、 uuid是什么?2、uuid的组成3、uuid的分类3.1 uuid13.2 uuid43.3uuid3、uuid51、 uuid是什么?UUID stands forUniversally Unique IDentifier. It's a 128-bit value used fora unique identificationin software development。UUID代表通用唯一标识符。它是一个128位的值,用于软件开发中的唯一标识。...

2020-12-21 15:19:52 4640

转载 数据分析基础:pandas中的Series和DataFrame的rank方法的理解

转自:https://www.cnblogs.com/yinyoupoet/p/13287392.html

2020-11-01 21:22:47 234

原创 python基础:Python判断文件是否存在的三种方法(os.path.exsist, os.path.isfile, try-catch)

博客原文:http://www.spiderpy.cn/blog/detail/28前言:通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。一、使用os模块os模块中的os.path.exists()方法用于检验文件是否存在判断文件是否存在import osos.path.exists(t...

2020-10-28 15:53:22 54854

原创 python基础:isinstance的使用

前言:这个知识点比较低级,只是在这里记录一下,以防自己忘记了。以前只知道isinstance(some_variable, some_type),后来在看flask源码时,发现了了另一种用法:>>> a = 50>>> b = "ok">>> string_type = (str, int) # 注意必须是tuple>>> isinstance(a, string_type)True>>

2020-10-28 10:55:48 324

原创 python基础-flask源码中使用的模块:sys.module的使用和场景

前言最近在做一件事情:把flask的源码通读一遍。虽然对flask的运行原理已经比较理解了。但是看了一些代码,发现有很多用法都很有借鉴意义。并且有很多基础模块自己还是不会用。所以决定细细的看一遍flask源码。一、sys.module的使用sys.module是一个全局的字典,在初始化python后就已经加载到内存了。比如我们使用的平时的模块,其实早就在module里面记录了。如下:import sysprint(sys.modules.get("random"))# 输出&lt

2020-10-20 13:58:50 627

原创 2、luigid的分布式配置-central scheduler的分布式配置

目录前言1、local scheduler 和 central scheduler的使用与区别2、central scheduler 详细使用与分布式配置前言 luigid是luigi任务的一个可视化界面,我们使用luigi执行的任务都会显示在这个可视化界面中。可以很好的帮助我们监控我们task的执行情况。通常我们在本地测试时,总是设置 local_scheduler=True,这其实表示我们设置的是本地调度器。但是在项目中其实使用最多是central planner。...

2020-10-19 19:27:42 463

原创 计算机基础:区分概念-程序与进程、进程与线程

前言最近在看《现代操作系统》这本书,感觉里面讲的一些概念非常通俗易懂,因此也会摘抄一些过来,有必要的情况下,我会加上自己的理解进程与程序的区别(摘抄)进程和程序之间的区别是很微妙的,但很重要。用一个比喻可以是我们更容易理解这一点。想象一位好厨艺的计算机科学家正在为他的女儿烘培生日蛋糕。他有做蛋糕的食谱,厨房里有所需的原料:面粉、鸡蛋、糖、香草汁等。在这个比喻中,做蛋糕的食谱就是程序(即用适当形式描述的算法),计算机科学家就是中央处理器(CPU),而做蛋糕的各种原料就是输入数据。进程.

2020-08-27 17:28:27 327

原创 python基础:logging模块的使用

前言在项目中我们用到logging模块的地方非常之多,一个好的日志格式可以为我们的后期排查bug的工作带来很多方便,所以logging能使用好是非常重要的。这篇文章中,主要讲一个比较好的logging日志的使用模式。在简单介绍logging的几个函数后,我会把这个模式的代码贴出来,供大家参考。这个模式也是我在项目中看到别人这样写,觉得不错,摘抄下来的。一、logging模块的用法logging模块的用法,一搜一大堆介绍,并且也比较简单,因此这里只是简单的说说。1、使用步骤配置日志信息

2020-08-24 18:42:36 435

原创 python基础:网络通信

前言本节只是对总体的python通信模块做一个总体的介绍,具体要查看哪个模块,请直接点击相应的文章链接。python用于网络通信的标准库主要有4个ipaddress socket select selectors他们的使用场景时什么呢?ipaddress 提供了一些类来验证、比较和处理 IPv4/IPv6网络地址,用的比较少socket比较底层,可以直接访问原生C套接字库,可以用于与任何网络服务通信,很常用。(多说一句,http、ws等等这些服务都可以用socket编程来模.

2020-08-06 19:11:35 281

原创 python基础:%r,%d,%s以及!r的使用

目录前言一、%r,%d,%s,%f的使用二、指定打印格式前言在我们打印日志时,经常会希望打印出格式化的日志,就会用到占位符。本文将介绍常用的:%r,%d,%s,f%以及!r的使用。一、%r,%d,%s,%f的使用%s其实就是 字符串的占位符 %d是整数的占位符(也可以传float参数,但是会被floor掉) %f是float的占位符 %r是原生字符串占位符%s其实就是 字符串的占位符>>> name = "weihua">>.

2020-08-03 16:14:55 4205 1

原创 python基础:inspect模块各函数的用法

目录前言一、inspect模块各函数的用法1、获取成员与判断2、获取源代码3、类与函数4、调用栈前言inspect函数主要用于以下四个方面  对是否是模块、框架、函数进行类型检查   获取源码   获取类或者函数的参数信息   解析堆栈由于我对解析堆栈还不是很熟悉,所以对其的介绍,今后再详细说明。一、inspect模块各函数的用法1、获取成员与判断1. inspect.getmembers(object[,predicate])第二个参数通常可以.

2020-08-02 22:14:58 24223

原创 python基础:all、any的用法,配合luigi源码中用到的场景

目录前言一、all和any的用法1、all的用法2、any的用法二、luigi源码中的活用all的实例前言最近在写项目中,用到了luigi,并且对luigi的scheduler要做一些改造。看luigi的源码时,发现了一个用到all的场景,感觉挺不过错的,特此记录下来。其实下面我摘自源码的一段代码更值得去学习,动态检测你输入的参数是否合法那么,本文还是先说all和any的用法。最后再上应用例子一、all和any的用法1、all的用法语法all(itera

2020-08-02 21:02:24 434

原创 python基础:isinstance的使用细节,以及常用类型判断所使用的包

numberstypingcollections前言isinstance相信大家都已经很熟悉了,对于他的用法和一些基本的操作,我们再做一个介绍。但是我今天最想和大家将的其实是isinstance(object, classinfo) 中的classinfo都有哪些类型,int、str、dict、bool、list等这些基本类型都是一些最基本的,本文将告诉大家一些常用的classinfo,以及isinstance它的内部到底是怎样一个判断机制。一、isinstance的基本使用1、

2020-07-28 19:09:44 4584 1

原创 python基础:queue模块的用法,重点介绍LifoQueue与queue_prioriry

目录前言一、LifoQueue二、PriorityQueue(优先队列)前言python内置的queue模块再作为消息队列使用时,是一个非常好用的模块。它好用最主要的原因就是:他是线程安全的,所以支持多线程消费。那么,它为什么是线程安全的呢?这篇文章中我只能跟你说,因为queue是基于锁机制实现的。具体的实现原理,请看我另外一篇文章:《python基础:queue实现的底层原理》针对queue中的put、get、put_nowait、get_nowait这种方法,本文就不详细介.

2020-07-28 10:24:48 3213

原创 python基础:python queue模块中,各个方法的使用介绍

后面补充

2020-07-28 10:24:02 404

原创 python基础:funtiontools total_ordering的用法

后面补充

2020-07-28 10:21:46 1891

原创 1、luigid的启动与简单使用

前言我们在使用luigi简单调试时,在启动luigi任务时,经常加上参数 local_scheduler=True,如下。luigi.build([Join()], local_scheduler=True, detailed_summary=False)但是,这只是为了调试时,聚焦于代码自身的正确性,才会用它。而luigi内置了一个调度器叫做Central Scheduler。我们在生产中也是用这个Central Scheduler来控制、监控我们的task。为什么用这个Central

2020-07-27 17:31:38 1554

原创 windows配置PYTHONPATH环境变量的方法

一、为什么要配置PYTHONPATHpython的程序架构是基于多文件系统的,一个python程序包含一个顶层文件和多个模块文件。除了标准库模块和安装的第三方库模块外,有时需要导入自己编写的模块文件。标准库模块和第三方库模块文件的导入,不需要特殊的设置,系统会从默认的模块搜索路径中找到模块文件。但当导入自己编写的模块时,且模块文件和顶层文件不在同一个路径下时,如何让计算机找到模块文件的位置呢?这时需要将模块文件的路径加入到python的模块搜索路径中去。最简单的方法就是使用PYTHONPAT

2020-07-27 17:18:33 16543

原创 python的__name__、__class__、__dict__、__module__、__qualname__,以及dir的含义与使用场景

目录前言实战1、__dict__2、__class__3、__name__4、__module__5、__qualname__前言在一些底层代码中,我们经常可以看到__name__/__class__等用法的存在,其实我们能从字面上的意思大概猜到各自的作用,但是具体不知到他们指向的是哪个对象。今天就统一记录一下。这些模块的功能我并没有去百度,我是直接去拿着python IDE去测试的,其实对于这种很简单的功能的测试,建议大家不要第一想法就是搜索引擎查找用法..

2020-07-23 09:55:10 3703 1

原创 sqlalchemy-自定义数据类型

前言sqlalchemy包含了mysql支持的所有的数据类型,我们平时的使用基本上都能够满足了。但是,有一种情况比较特殊,就是mysql不能存储json数据,自然,sqlalchemy也没有对应json的数据类型。这次在项目中,我需要在mysql中存储一个结构化的数据:JSON数据。那么,能实现吗?实现原理是可以实现的,因为sqlalchemy提供了一个类:TypeDecorator。这个类可以定义某个现存的数据类型的行为,文档原话:Allows the creation of.

2020-07-14 09:25:25 1327 1

原创 python项目中config的设计模式

前言最近在写项目时,认真阅读了底层代码的框架结构,有很多好的设计思想,所以记录下来,希望今后能够为自己所用。这个专题不记录大的架构设计思想,而是专门调一些小的模块设计,以及python中比较好用的、可以用于架构设计的标准库来记录。所以这个专题的记录也就较琐碎。当然我会整理一个目录,方便以后查阅。1、如何合理的配置config包项目开发中我们会区分dev环境与production环境,在配置文件中我们一般会配置两种环境的参数。通过传参的方式觉得此次启动服务使用的哪个环境。当然dev环.

2020-07-13 16:41:47 1756

原创 16、mysql底层知识进阶-mysql主从复制配置方法

目录3. Mysql复制3.1 复制概述3.2 复制原理3.3 复制优势3.4 搭建步骤3.4.1 master配置3.4.2 slave配置3.4.3 验证同步操作3. Mysql复制3.1 复制概述复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。.

2020-07-11 09:51:57 374

原创 15、mysql底层知识进阶-Mysql 日志:错误日志、binlog、查询日志、慢查询日志

目录2. Mysql 日志2.1 错误日志2.2 二进制日志2.2.1概述2.2.2 日志格式2.2.3 日志读取2.2.4 日志删除2.3 查询日志2.4 慢查询日志2.4.1 文件位置和格式2.4.2 日志的读取2. Mysql 日志在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事件。MySQL 也不例外,在 MySQL 中,有 4 种不同的日志,分别是错误日志、二进制日志(BINLO

2020-07-11 09:51:34 279

原创 14、mysql底层知识进阶-MySql中常用工具:mysqladmin、mysqlbinlog、mysqldump、mysqlimport、mysqlshow

目录1. MySql中常用工具1.1 mysql1.1.1 连接选项1.1.2 执行选项1.2 mysqladmin1.3 mysqlbinlog1.4 mysqldump1.5 mysqlimport/source1.6 mysqlshow1. MySql中常用工具1.1 mysql该mysql不是指mysql服务,而是指mysql的客户端工具。语法 :mysql [options] [database]mysql [options] [data

2020-07-10 17:17:54 454

原创 13、mysql底层知识进阶-mysql常用技巧:sql正则、常用函数

6. 常用SQL技巧6.1 SQL执行顺序编写顺序SELECT DISTINCT <select list>FROM <left_table> <join_type>JOIN <right_table> ON <join_condition>WHERE <where_condition>GROUP BY <group_by_list>HAVING <having_condition&

2020-07-10 17:04:25 144

原创 12、mysql底层知识进阶-Mysql锁问题

目录5. Mysql锁问题5.1 锁概述5.2 锁分类5.3 Mysql 锁5.2 MyISAM 表锁5.2.1 如何加表锁5.2.2 读锁案例5.2.3 写锁案例5.2.4 结论5.2.5 查看锁的争用情况5.3 InnoDB 行锁5.3.1 行锁介绍5.3.2 背景知识5.3.3 InnoDB 的行锁模式5.3.4 案例准备工作5.3.5 行锁基本演示5.3.6 无索引行锁升级为表锁5.3.7 间隙锁危害5.3.8 Inn...

2020-07-10 16:28:24 181

原创 11、mysql底层知识进阶-Mysql内存管理及优化

3. Mysql内存管理及优化3.1 内存优化原则1) 将尽量多的内存分配给MySQL做缓存,但要给操作系统和其他程序预留足够内存。2) MyISAM 存储引擎的数据文件读取依赖于操作系统自身的IO缓存,因此,如果有MyISAM表,就要预留更多的内存给操作系统做IO缓存。3) 排序区、连接区等缓存是分配给每个数据库会话(session)专用的,其默认值的设置要根据最大连接数合理分配,如果设置太大,不但浪费资源,而且在并发连接较高时会导致物理内存耗尽。3.2 MyISAM 内存优化.

2020-07-10 15:55:57 112

python数据类型总结-xmind

python数据结构的总结,基于xmind编辑。 总结多年来遇到的python数据类型以及使用注意事项

2019-02-01

空空如也

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

TA关注的人

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