自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构专栏

微信搜一搜【架构专栏】关注这个程序员

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

原创 【Python Web】Gunicorn

WSGI全称是Web Server Gateway Interface,其主要作用是Web服务器与Python Web应用程序或框架之间的建议标准接口,以促进跨各种Web服务器的Web应用程序可移植性。WSGI并不是框架而只是一种协议.WSGI协议主要包括server和负责从客户端接收请求,将request转发给,将返回的response返回给客户端;接收由server转发的request,处理请求,并将处理结果返回给server。中可以包括多个栈式的中间件(

2024-05-15 18:23:50 1016

原创 Python 特性解读

这种方法虽然代码运行良好,但是缺点就是代码过于冗长,并且需要添加try-except-finally语句,不是很方便,也容易忘记.在这种情况下,。

2024-05-15 09:51:59 684 1

原创 Python多任务

一个正在运行的程序或者软件就是一个进程,,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。比如:现实生活中的公司可以理解成是一个进程,公司提供办公资源(电脑、办公桌椅等),真正干活的是员工,员工可以理解成线程。,进程里面可以创建多个线程,。

2024-05-14 18:03:03 763

原创 【Python】闭包和装饰器

我们前面已经学过了函数,我们知道当函数调用完,函数内定义的变量都销毁了,但是我们有时候需要保存函数内的这个变量,每次在这个变量的基础上完成一些列的操作,比如: 每次在这个变量的基础上和其它数字进行求和计算,那怎么办呢?我们就可以通过咱们今天学习的闭包来解决这个需求。在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数。不修改已有函数的源代码不修改已有函数的调用方式。

2024-04-16 11:46:46 380

原创 Linux 用户

Linux 新建用户

2022-11-23 12:43:30 123 1

原创 为什么需要TIME_WAIT

只要客户端等待 2 MSL 的时间,客户端和服务端之间的连接就会正常关闭,新创建的 TCP 连接收到影响的概率也微乎其微,保证了数据传输的可靠性。1、当客户端没有待发送的数据时,它会向服务端发送 FIN 消息,发送消息后会进入 FIN_WAIT_1 状态;

2022-09-19 21:07:52 732

原创 分布式系统理论

分布式实际上就是单一的本地一体解决方案,在硬件或者资源上不够业务需求,而采取的一种分散式多节点,可以扩容资源的一种解决思路。它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。

2022-09-18 22:04:37 337

原创 Laravel之数据库操作与Eloquent模型使用总结

数据库操作 执⾏原⽣SQL 1 //查询 2 $emp = DB::select('select * from employees where emp_no = 1'); 3 $emp = DB::select('select * from employees where emp_no = ? and gender = ?', [1,'M']); 4 $emp = DB::select('select * from employees where emp_no = :empNo ..

2022-05-11 17:56:16 696

原创 Elasticsearch介绍与PHP客户端端使用

简介Elasticsearch是一个基于JSON的分布式搜索和分析引擎。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。用途Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,其可用于多种用例:..

2022-03-22 18:24:08 1990

原创 缓存击穿、缓存穿透、缓存雪崩

概念缓存穿透指缓存和数据库中都没有的数据,而用户不断发起请求,这时的用户很可能是攻击者,攻击会导致数据库压力过大。缓存击穿缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。缓存雪崩当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力。解决方案缓存穿透解决方案最常见的则是采用布隆过滤器,将所有可能存在的数

2021-01-14 21:52:06 125

转载 免费好用的图床

图床就是一个在网络上存储图片的地方,目的是为了节省本地服务器空间,加快图片打开速度,主要是个人博客和网站使用七牛云官网地址:https://portal.qiniu.com简介:注册认证后有10G永久免费空间,每月10G国内和10G国外流量,速度相当快,七牛云是国内专业CDN服务商,插件支持比较多,有免费ssl证书,但https流量收费注意:七牛云30天后会回收测试域名,因此你必须要绑定自己的已备案的域名图片上传限制:无又拍云官网地址:https://www.u...

2020-11-29 11:39:51 1239

原创 Nginx如何调用php

LNMP(Linux+Nginx+Mysql+PHP)为现在PHP非常常用的架构。本文将讲讲相关原理以及配置方法。CGI和FastCGI简介1.CGICGI 是Web 服务器运行时外部程序的规范接口,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI。传统CGI接

2020-11-16 22:05:10 878

原创 Redis如何实现持久化

Redis是基于内存的数据库,不过Redis也是可以实现数据持久化的。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式

2020-11-15 17:33:21 457

原创 mysql 如何在查询结果中增加一列递增的数

sql语句 如下:SELECT nick_name FROM t_user WHERE type = 1;得到的结果是:张三李四王五而现在我想要的结果是:1 张三2 李四3 王五应该如何写sql呢?可以用 @rownum := @rownum+1 实现 递增的功能 。SELECT @rownum := @rownum+1 AS rank, ...

2020-02-12 19:47:59 4091

原创 ELK的安装配置

一、组成ELK由Elasticsearch、Logstash和Kibana三部分组件组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用kibana 是一个开源和免费的工具,...

2020-02-10 18:22:00 648

转载 Linux系统控制脚本小结

k2pdfopt的官网是:http://www.willus.com/k2pdfopt/以下是软件界面:具体操作步骤:1.导入要转换的文件,直接ADD FILE;2.选择你的kindle型号,转换模式默认就可以了,这时系统会在区域4自动选上对应模式的必选参数;3.Additional options是自定义的参数,我们输入-m来裁剪页边距;4.选上Autostaighten,在p...

2019-06-02 17:10:57 410

原创 Numpy的基本操作

基本操作1.1 生成数组的方法1 生成0和1的数组empty(shape[, dtype, order]) empty_like(a[, dtype, order, subok]) eye(N[, M, k, dtype, order]) identity(n[, dtype]) ones(shape[, dtype, order]) ones_like(a[, dtype, ...

2019-05-26 10:35:41 182

原创 日志分析(二):日志分析脚本

常用的文本处理工具有sed和awk,这些工具可以简化完成数据处理任务1.sed编辑器sed是面向行的,sed不会修改文件本身。格式:sed [options] 'command' file(s)command为具体的文本编辑命令,file为输入的文件。如将日志文件中的xxx替换成baidu输出:sed 's/xxx/baidu/' a.log | head -10# s...

2019-04-16 22:23:50 1247

原创 日志分析(一):日志分析常用命令

1.查看文件的内容如果一个日志文件比较小,直接使用cat查看cat -n 显示行号2.分页显示文件more命令。enter键显示下一行,空格键显示下一页,F显示下一屏,B显示上一屏。3.显示文件尾tail 命令可以看到文件最后几行,-n参数后面跟数字,表示显示文件最后几行。4.显示文件头head显示开头几行,-n参数指定显示开头几行5.内容排序sort对数据...

2019-04-10 22:39:47 1044

原创 SSH免密码登录

有机器A(192.168.1.1),B(192.168.1.2)。现想A通过ssh免密码登录到B。1.在A机下生成公钥/私钥对。[test@A~]$ssh-keygen-trsa-P''直接ssh-keygen然后三次回车就可以了。-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。它在当前用户目录(~)下生成.ssh目录,.s...

2019-03-31 11:01:49 280

原创 制作Python模块的方法

1 目的利用setup.py将框架安装到python环境中,作为第三方模块来调用,2 第一步:完成setup.py的编写以下代码相当于一个模板,只用更改name字段出,改为对应的需要安装的模块名称就可以,比如这里是:py_plus 将setup.py文件放到py_plus的同级目录下from os.path import dirname, join# from pip.req ...

2019-03-17 09:24:59 888

原创 统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)

题目: 用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数。常规解法怎么判定单词?1 不是字母的特殊字符作为分隔符分割字符串 (避免特殊字符的处理不便,全部替换成"")2 正则分割3 遍历字符串,取每个word4 正则匹配怎么统计个数?将wordlist的word和word的个数放入dict,排序import rewith op...

2019-02-18 11:59:56 6306

原创 进程管理Supervisor

Supervisor是一个用python实现的进程管理工具,可以很方便的启动、重启、关闭、查看进程。除了对单个进程的控制,还可以同时操作多个进程,除此之外还可以监控进程,当进程由于某种原因崩溃或者误操作杀掉后,自动重启并发送事件通知。安装:>pip install supervisorSupervisor组件Supervisor包含4种组件。1.Supervisord:服务端程序,...

2019-01-26 17:58:55 203

原创 selenium的使用

selenium是一个web自动化测试工具,selenium可以直接运行在浏览器上,可以接收指令,让浏览器自动加载页面,获取需要的数据。selenium的基本使用1.导包from selenium import webdriver2.创建driver对象webdriver.PhantomJS()3.请求数据driver.get("http://www.baidu.com")4.查看...

2019-01-16 17:39:23 184

原创 等概率生成随机数

题目一:已知有一个rand3()函数,可以生成等概率的[1, 3]范围内的随机整数,利用这个rand3()函数构造一个rand7()函数,生成等概率[1, 7]范围内的随机整数。 分析:要保证rang7在整数1-7的均匀分布,可以构造一个1-7*n(n为任何正整数)的均匀分布的随机整数区间。假设x是这个1-7*n区间上的一个随机整数,那么x%7+1就是均匀分布在1-7上的整数。由于(ran...

2019-01-09 20:53:13 2079

原创 mysql的各种存储引擎对比

一、存储引擎概述:1.为什么要合理选择数据库存储引擎:MySQL中的数据用各种不同的技术存储在文件中,这些技术中得到每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。2.存储引擎的作用:设计并创建数据库以保存系统所需的关系或XML文档;实现系统以访问和更改数据库中存储的数据;...

2018-12-06 00:05:25 197

原创 uwsgi + Nginx 部署过程及问题处理

静态文件•当 Django 运行在生产模式时,将不再提供静态文件的支持,需要将静态文件交给静态文件服务器。•我们需要收集这些静态文件,集中一起放到静态文件服务器中。•先创建目录 static。•Django 提供了收集静态文件的方法。先在配置文件中配置收集之后存放的目录。STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(...

2018-12-01 16:13:42 762

转载 进程间通信的几种方式

一、管道在Linux 中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现如下所述。• 限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux 中,该缓冲区的大小为1 页,即4KB,使得它的大小不像文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道时可能变满,当这种情况发...

2018-11-28 20:10:00 15783 1

转载 RabbitMQ的两种模式

 所谓模式,就是在某种场景下,一类问题及其解决方案的总结归纳。生产消费者模式与订阅发布模式是使用消息中间件时常用的两种模式,用于功能解耦和分布式系统间的消息通信,以下面两种场景为例:数据接入   假设有一个用户行为采集系统,负责从App端采集用户点击行为数据。通常会将数据上报和数据处理分离开,即App端通过REST API上报数据,后端拿到数据后放入队列中就立刻返回,而数据处理则另外使用Wo...

2018-11-27 10:41:28 2366

原创 lxml的使用

1 lxml的安装安装方式:pip install lxml2 lxml的使用2.1 lxml模块的入门使用 导入lxml 的 etree 库 (导入没有提示不代表不能用) from lxml import etree 利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数...

2018-11-18 17:05:55 580

原创 数据提取之xpath

什么是xpathXPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。 xpath语法1 选取节点XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。使用chrome插件选择标签时候,选中时,选中的...

2018-11-18 16:51:33 555

转载 Ubuntu上pip报错ModuleNotFoundError: No module named 'pip._internal'

报错如下:root@iZwz98p61dhjsadfhjkarjhj5Z:~# pip -VTraceback (most recent call last):  File "/usr/local/bin/pip", line 7, in <module>    from pip._internal import mainModuleNotFoundError: No mo...

2018-11-04 17:48:13 1597 1

翻译 ubuntu 18.04触控板右键失灵的解决方法

ubuntu的软件中心(橘黄色的那个)搜索gnome-tweak,安装运行, 到 keyboard & mouse tab>Mouse click emulation> AREA这个项打勾解决。还有一种解释是18.04 ubuntu的触控板的驱动默认按照mac的触控板模式来的,在terminal运行 gsettings set org.gnome.desktop.per...

2018-11-04 17:29:25 2102

原创 requests模块的使用

response的常用属性:response.text 响应体 str类型 respones.content 响应体 bytes类型 response.status_code 响应状态码 response.request.headers 响应对应的请求头 response.headers 响应头 response.request.cookies 响应对应请求的cookie resp...

2018-11-04 14:11:41 314

原创 Flask-SQLAlchemy 的基本使用

SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。安装安装 flask-sqlalchemypip install flask-sqlalchemy如果连接的是 mysql 数据库,需要安装 mysqldbpip install flask-...

2018-11-01 22:15:53 345

原创 DjangoDebugToolbard的相关配置

1.安装DjangoDebugToolbar:pip install django-debug-toolbar2.将debug_toolbar复制到项目根目录下,打开项目settings.py,首先确保DEBUG=True找到INSTALLED_APPS,添加:‘debug_toolbar’,3.找到MIDDLEWARE_CLASSES, MIDDLEWARE_CLASSES里面的顺序很重要,...

2018-10-31 22:54:18 133

原创 Celery定时任务

Celery定时任务配置启用Celery的定时任务需要设置CELERYBEAT_SCHEDULE 。  Celery的定时任务都由celery beat来进行调度。celery beat默认按照settings.py之中的时区时间来调度定时任务。创建定时任务一种创建定时任务的方式是配置CELERYBEAT_SCHEDULE:#每30秒调用task.addfrom datetim...

2018-10-12 00:14:04 1009

转载 将Ubuntu主文件夹里的中文文件夹名称改成英文

方法一:首先修改现有主文件夹下各文件夹名称:Desktop、 Documents、 Download、 Music、 Pictures、 Public、 Templates、 Videos ……然后编辑配置文件:gedit ~/.config/user-dirs.dirs把文件夹指向改掉,例如:XDG_DESKTOP_DIR="$HOME/Desktop"XDG_DOW...

2018-09-15 14:19:06 1442

原创 pip Fatal error in pip Fatal error in launcher: Unable to create pro: Unable to create process using

执行pip安装包的时候报了这个错:'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。在环境变量中修改了之后又有错,尝试使用“python pip.exe install”是可以的,但是又觉得这样用比较麻烦,还是希望把它搞清楚!又不希望重新安装!在网上搜索“pip从什么位置读取python的安装目录”无果,就搜索错误信息,还真找到了!在cmd下执行“python -m ...

2018-09-06 21:48:04 228

原创 两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] 求两个数的和等于指定数,可以转为判断指定数减其中一个数,得到的数是否在给定的数组中,...

2018-09-04 18:32:08 245

腾讯信鸽Python SDK

腾讯信鸽Python SDK,支持Python3版本,官方只支持Python2

2018-11-01

网络编程实用教程.pdf

网络编程,了解更多网络通信技术知识。了解通信过程。

2018-04-21

空空如也

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

TA关注的人

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