05 2022 档案
摘要:2.安装docker-compose 方法1:直接yum安装(老版本)yum install docker-compose 方法2:使用官方脚本安装 curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-
阅读全文
摘要:提前准备nginx_php:v1镜像 yum仓库镜像: 方法1: 宿主机安装createrepo 容器提供nginx --> debian 数据挂载到/data 更新在宿主机上更新 优点:不需要自己创建镜像 缺点:宿主机需要额外安装软件 方法2: 自定义centos7+nginx的镜像 容器里安装c
阅读全文
摘要:容器安装 harbor 80 jenkins 8080 gitlab 9090 Jenkins容器化 1.下载镜像 2.运行镜像 3.如何jenkins里运行jenkins # 创建用户 useradd -u 1000 jenkins -M -s /sbin/nologin 运行容器 docker
阅读全文
摘要:第1章 Docker容器介绍 1.docker是什么 Docker是Docker.Inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在 GitHub 上,基于Go语言并遵从Apache2.0协议开源。 Docker是通过内核虚拟化技术(namespaces及cgrou
阅读全文
摘要:由于 Flask-Script 长久不维护,且没有适配flask 2.0 以上的版本, 所以 flask-migrate 去掉了 Flask-Script 的支持 老本版的使用 旧的版本使用方法 会新建一个 脚本 如下 db_manager.py: from flask import Flask f
阅读全文
摘要:flask-migrate可以十分方便的进行数据库的迁移与映射,将我们修改过的ORM模型映射到数据库中。另外flask-migrate是对Alembic的一个封装,其实它的底层是交由Alembic来处理的。使用起来十分方便。 在flask项目中使用flask-migrate,我采用下面的结构。 目录
阅读全文
摘要:1、flask-script的作用 可以通过命令行的形式来操作flask。例如通过命令跑一个开发版本的服务器、设置数据库、定时任务等。 2、flask-script的安装 pip install flask-script 复制代码 3、示例代码 新建文件manage.py,文件中的代码如下 from
阅读全文
摘要:mongo异构数据迁移 1.mysql自定义分隔符导出成csv格式 select * from world.city into outfile '/var/lib/mysql/city.csv' fields terminated by ','; 2.手动添加CSV头部 ID,Name,Countr
阅读全文
摘要:基于角色的访问控制 1.官网介绍 https://docs.mongodb.com/manual/core/authorization/ https://docs.mongodb.com/manual/tutorial/enable-authentication/ https://docs.mong
阅读全文
摘要:mongo副本集-replica set 1.官网地址 https://docs.mongodb.com/manual/replication https://docs.mongodb.com/manual/reference/method/rs.initiate/#rs.initiate 2.副本
阅读全文
摘要:备份与恢复 1.工具介绍 mongodump/mongorestore mongoexport/mongoimport 2.应用场景 定时备份,全量备份 mongodump/mongorestore bson gzip 分析数据,迁移数据 mongoexport/mongoimport json c
阅读全文
摘要:第1章 ELK简介 E: elasticsearch 存储数据 java L: logstash 收集,过滤,转发,匹配 java K: kibana 过滤,分析,图形展示 java F: filebeat 收集日志,过滤 go 第2章: 传统日志分析需求 1.找出访问网站频次最高的 IP 排名前十
阅读全文
摘要:Redis集群 1.烧饼的不足 1.主库写压力太大 2.资源利用率不高 3.连接过程繁琐,效率低 2.集群的重要概念 1.Redis集群,无论有几个节点,一共只有16384个槽位 2.所有的槽都必须被正确分配,哪怕有1个槽不正常,整个集群都不可用 3.每个节点的槽的顺序不重要,重要的是槽的数量 4.
阅读全文
摘要:Redis Sentinel(哨兵) 1.哨兵的作用 1.解决主从复制需要人为干预的问题 2.提供了自动的高可用方案 画图: 2.目录和端口规划 redis节点 6379 哨兵节点 26379 3.部署3台redis单节点主从关系 db01操作 pkill redis cat >/opt/redis
阅读全文
摘要:主从复制 1.快速部署第二台Redis服务器 ssh-keygen ssh-copy-id 10.0.0.51 rsync -avz 10.0.0.51:/opt/redis_6379 /opt/ rsync -avz 10.0.0.51:/usr/local/bin/redis* /usr/loc
阅读全文
摘要:持久化 1.RDB持久化和AOF持久化 RDB: 类似于快照,当前内存里的数据的状态持久化到硬盘 优点:压缩格式/恢复速度快 缺点:不是实时的,可能会丢数据,操作比较重量 AOF:类似于mysql的binlog,可以设置成每秒/每次操作都以追加的形式保存在日志文件中 优点:安全,最多只损失1秒的数据
阅读全文
摘要:random模块 随机数模块 import random # print(random.random()) # 随机产生弍-之间的小数 # print(random.randint(1,6)) # 随机产生一个1-6之间的整数 掷骰子 # print(random.uniform(1,6)) # 随
阅读全文
摘要:一 go操作redis的选择 golang操作redis主要有两个库,go-redis和redigo。 go-redis:star数更多,支持连接哨兵及集群模式的Redis redigo:star数少一些,操作更简单 二 redis安装 2.1 windowd平台安装方案 // 下载地址 // 最新
阅读全文
摘要:1.加密种类 1.对称加密算法 :常⽤的算法包括DES、3DES、AES、DESX、Blowfish、RC4、RC5、RC6。推荐⽤AES。 ⼆、⾮对称加密算法:常见的⾮对称加密算法:RSA、DSA(数字签名⽤)、ECC(移动设备⽤)、Diffie-Hellman、El Gamal。推荐⽤ECC(椭
阅读全文
摘要:1.打印信息print各个区别 1. Println 打印的每一项之间都会有回车空行,Print 没有 2. Printf是格式化输出 func main() { a:=10 b:=20 c:=30 fmt.Println("a=", a , ",b=" , b , ",c=" , c) # a=
阅读全文
摘要:中文文档1 https://studygolang.com/pkgdoc 中文文档 中文网2 https://studygolang.com/ 中文网 全面中文文档3 http://www.topgoer.com/ 全面中文文档
阅读全文
摘要:第1章 Elasticsearch介绍 1.什么是全文检索和Lucene 基于java环境,基于Lucene之上包装一层外壳 Lucene是一个java的搜索引擎库,操作非常繁琐 全文检索和倒排索引: 数据里里的标题: 1.it小猪 2.it小猪学linux 3.it小猪学python 4.it小猪
阅读全文
摘要:什么是分布式锁?实现分布式锁的三种方式 在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢? 一 为什么要使用分布式锁 我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访
阅读全文
摘要:# 第1章 主从复制介绍 ## 1.介绍 ```MySQL数据库的主从复制技术与使用scp/rsync等命令进行的异机文件级别复制类似,都是数据的远程传输.只不过MySQL的主从复制技术是其软件自身携带的功能,无须借助第三方工具.MySQL的主从复制并不是直接复制数据库磁盘上的文件,而是将逻辑的记录
阅读全文
摘要:mysql和pg自动创建时间配置 CURRENT_TIMESTAMP
阅读全文
摘要:一、事务的特性 A.原子性 atomicity :不可分割,要么都做,要么都不做。 C.一致性 consistency :数据库从一个一致性状态变到另一个一致性状态,一致性与原子性是密切相关(总量不变) I:隔离性 isolation :一个事务的执行不能被其他事务干扰 D:持久性 durabili
阅读全文
摘要:断关联 1、外键位置: 一对多 - 外键放多的一方 一对一 - 从逻辑正反向考虑,如作者表与作者详情表,作者删除级联删除详情,详情删除作者依旧存在,所以建议外键在详情表中 多对多 - 外键在关系表中 2.关联表之间断关系(全部写在外键字段的括号里) db_constraint=False, # 断关
阅读全文
摘要:MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言近期发展非常快,PHP, Ruby, Python, Java 各有特点,尽管 NOSQL 近期越來越多的被提到,可是相信大部分架构师还是会选择 MYSQL 来做数据存储。 MYSQL 如此方便和稳定。以至于我们在开发 WEB 程序的时
阅读全文
摘要:测试案例 idnamemoney 1 小明 1000 小明的账户上有1000 元 ,现在有两个线程同时往他账户上加钱。 1.A 线程准备往小明的账户上加100, 1, 读取到小明 有 1000 元, 1000 + 100 事务未提交; 2.B 线程准备往小明的账户上加200, 1, 读取到小
阅读全文
摘要:一、数据库的类型 关系性数据库 MySQL, oracle, sqlite, db2, sql server 1.数据与数据之间可以有关联和限制的 2.关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候,第一步就是确定表结构 非关系性数据库 redis,mongodb(文
阅读全文
摘要:数据入库+爬虫 import requests from bs4 import BeautifulSoup import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='123',
阅读全文
摘要:一、数据准备 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localho
阅读全文
摘要:数据库设计 什么是数据库设计三大范式? 为了建立冗余较小,结构合理的数据库,设计数据库式就必须遵循一定的规则。 在关系性数据库中这种规则称为:范式。范式式某一种设计要求的总结。 在实际开发中最为常见的设计范式有三个:三大范式 1.第一范式(确保每列保持原子性):所有字段值都是不可分解的原子值
阅读全文
摘要:安装mysql 1、下载MySQL5.7 cd /home/mysql wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-i686.tar.gz 2、解压安装包 tar -xf m
阅读全文
摘要:一 什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。 二、分布式系统唯
阅读全文
摘要:Selenium 简介 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器,但是现在谷歌的无头比较火,下
阅读全文
摘要:BeautifulSoup4库 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。 lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM(Document Object Model)的,
阅读全文
摘要:django内置信号 一 信号简介 Django提供一种信号机制。其实就是观察者模式,又叫发布-订阅(Publish/Subscribe) 。当发生一些动作的时候,发出信号,然后监听了这个信号的函数就会执行。 通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。用于在框架执行操作
阅读全文
摘要:SQLAlchemy 1.介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip3 install sqlalchemy # 可能会报错
阅读全文
摘要:wtforms 安装:pip3 install wtforms 使用1(简单版): from flask import Flask, render_template, request, redirect from wtforms import Form from wtforms.fields imp
阅读全文
摘要:一、偏函数 当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。 from functools import partial def func(a1,a2,a3): print(a1,a2,a3) n
阅读全文
摘要:flask之分析线程和协程 01 思考:每个请求之间的关系 我们每一个请求进来的时候都开一个进程肯定不合理,那么如果每一个请求进来都是串行的,那么根本实现不了并发,所以我们假定每一个请求进来使用的是线程。 那么线程中数据互相不隔离,存在修改数据的时候数据不安全的问题。 假定我们的需求是,每个线程都要
阅读全文
摘要:蓝图的作用 利用蓝图对程序的目录进行划分,方便管理 使用 init.py文件 from flask import Flask app = Flask(__name__) # 导入其他的文件 # app = Flask(__name__,template_folder='templates',stat
阅读全文
摘要:一、请求中间件 中间件: 1 before_first_request 当项目启动后,接收到的第一个请求,就会执行before_first_request装饰的函数,执行顺序也是谁先注册就谁先执行 2 before_request 请求没有经过响应函数的时候,会执行before_request装饰的
阅读全文
摘要:七、设置cookies from flask import Flask, make_response app = Flask(__name__) app.debug = True @app.route('/', methods=['POST', 'GET']) def index(): # 响应头,
阅读全文
摘要:九、闪现 9.1 什么是闪现? -设置:flash('aaa') -取值:get_flashed_message() - -假设在a页面操作出错,跳转到b页面,在b页面显示a页面的错误信息 from flask import Flask,flash,get_flashed_messages app
阅读全文
摘要:五、flask模板渲染 py文件: from flask import Flask,render_template,Markup app = Flask(__name__) app.debug = True USERS = { 1:{'name':'张三','age':18,'gender':'男'
阅读全文
摘要:六、Flask的请求与响应 from flask import Flask, request, make_response app = Flask(__name__) app.debug = True @app.route('/', methods=['POST', 'GET']) def inde
阅读全文
摘要:flask的配置文件 ''' 四种配置flask方法配置 1.直接给app对象赋值属性 2.以字典的形式,给flask配置文件做配置 3.以文件的形式给flask做配置(django就是这种) 4.以类的形式,给flask做配置(推荐使用) ''' from flask import Flask a
阅读全文
摘要:四、flask路由 4.1 源码分析 # 源码分析: ''' self.add_url_rule(rule, endpoint, f, **options) def add_url_rule( self, # app对象 rule, # url路由 endpoint=None, # 路由别名 vie
阅读全文
摘要:一、初识Flask 1.1 什么是flask? Flask 本是作者 Armin Ronacher在2010年4月1日的一个愚人节玩笑 ,不过后来大受欢迎,进而成为一个正式的python编写的web框架 Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站
阅读全文
摘要:Flask四剑客 ''' 响应字符串 响应html页面 跳转页面 返回json字符串 ''' from flask import Flask, render_template, redirect, jsonify app = Flask(__name__) @app.route("/index")
阅读全文
摘要:@retry装饰器requests请求失败并重复请求 在爬虫代码的编写中,requests请求网页的时候常常请求失败或错误,一般的操作是各种判断状态和超时,需要多次重试请求,这种情况下,如果想优雅的实现功能,可以学习下retrying包下的retry装饰器的使用 安装 pip install ret
阅读全文
摘要:python 操作RabbitMq 一、简介: RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件。消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完成通信。而作为中间件的 RabbitMq 无疑是目前最流行的消息队列之一
阅读全文
摘要:方法 执行大型js时有点慢 特殊编码的输入或输出参数会出现报错,解决方法: 可以把输入或输出的参数用base64编码一下。base64都是英文和数字,没有特殊字符了 1--js2py pip insatll js2py # 获取执行JS的环境 context = js2py.EvalJs() # 加
阅读全文
摘要:服务器测试 curl -x 你的代理ip 'https://api.ip.sb/ip' # 查出口地址 curl -x 你的代理ip 'https://www.instagram.com/' # 测试代理是否好用
阅读全文
摘要:fake_useragent from fake_useragent import UserAgent fake_useragent :只有250个ua 安装:pip install fake_useragent # 实力化 ua = UserAgent(verify_ssl=False) 参数:
阅读全文
摘要:使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Wi
阅读全文
摘要:一、架构介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon
阅读全文
摘要:scrapy版本爬取妹子图 不封号,不限速,无限爬取 关键所在下载图片 from scrapy.pipelines.images import ImagesPipeline 原来的类继承object,改为继承ImagesPipeline 其中 函数名固定 def get_media_requests
阅读全文
摘要:Pyppeteer Puppeteer 是 Google 基于 Node.js 开发的一个工具,有了它我们可以通过 JavaScript 来控制 Chrome 浏览器的一些操作,当然也可以用作网络爬虫上,其 API 极其完善,功能非常强大。 而 Pyppeteer 又是什么呢?它实际上是 Puppe
阅读全文
摘要:官方文档 https://miyakogi.github.io/pyppeteer/reference.html#mouse-class 启动pyppteer import asyncio from pyppeteer import launch async def main(): # headle
阅读全文
摘要:XPath语法和lxml模块 什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。 XPath开发工具 Chrome插件XPath Helper。 安装方法: 打开插件伴侣,选择插件 选
阅读全文
摘要:上线架构 安装mysql 123456789101112131415161718 # 下载 mysql5.7wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm# 安装 mysql5.7yum -y ins
阅读全文
摘要:一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。 总而言之,可用来实现各种微信个人号的自动化操作。(http://wxpy.readthedocs.io/zh/late
阅读全文
摘要:介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 from selenium i
阅读全文
摘要:安装使用 # 安装 pip3 install beautifulsoup4 from bs4 import BeautifulSoup soup=BeautifulSoup(ret.text,'html.parser') # 传数据 soup=BeautifulSaoup(open('a.html'
阅读全文
摘要:各种请求方式 pip3 install requests >>> import requests >>> r = requests.get('https://www.cnblogs.com') >>> r = requests.post('https://www.cnblogs.com', data
阅读全文