自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一夜奈何梁山

专注技术

  • 博客(39)
  • 资源 (6)
  • 收藏
  • 关注

原创 (五)数据组合

目录一:连接数据:1:添加行2: 添加列:3:concat连接具有不同列索引的数据:4:concat连接具有不同行索引的数据:二:合并数据集:1: 一对一合并:2: 多对一合并:3: 时间的转换:4:合并三张表:5: 使用assign添加一个列:6: join合并:一:连接数据:1: 合并文件:concat([文件1, 文件2, 文件3])2:使用iloc和使用loc查看某个列的区别。3:DataFrame与Series进行合并,发生的情况。4:DataFrame与DataFrame合并。1

2020-11-30 20:47:36 831

原创 (三)Pandas的两种数据结构

目录一:Pandas的两种数据结构:二:Series创建和属性:1:Series的创建:2:Series常见的属性:3:Series常见的方法:4:Series的布尔索引:5:Series的运算:三:DataFrame创建和属性以及方法:1:DataFrame的创建:2:DataFrame常见的属性:3:DataFrame的布尔索引:4:DataFrame的运算:一:Pandas的两种数据结构:Series : Series是一个一维的容器。和python的列表很相似,但是每个元素的数据类型必须相同。

2020-11-30 14:57:01 3598

原创 (四)Pandas数据分析入门

目录一: 统计:二:排序:三:案例分析:一: 统计:1: 加载数据:import pandas as pdcollege = pd.read_csv(‘C:/Users/11737/Desktop/机器学习课件/data/college.csv’)college.head()2:统计数据的列:college.columns3:查看数据的行和列:college.shape4:统计每列的数值信息:college.describe()5: 统计每列的数值信息,然后转置。

2020-11-30 14:15:15 862 1

原创 (二)Pandas DateFrame入门

目录一:介绍:二:安装pandas:三:加载数据集与展示数据:四: 查看部分数据:五:iloc与loc的区别:六:分组与聚合计算:七:基本的绘图功能:一:介绍:Pandas是用于数据分析的开源Python库,可以实现数据加载,清洗,转换,统计处理,可视化等功能DataFrame和Series是Pandas最基本的两种数据结构DataFrame用来处理结构化数据(SQL数据表,Excel表格)Series用来处理单列数据,也可以把DataFrame看作由Series对象组成的字典或集合。二:安

2020-11-29 18:39:02 678

原创 (一)Anaconda的安装和使用

目录一: Anaconda的安装与配置:1:下载安装包,安装到windows。2: 配置环境变量:将Anaconda\Scripts添加到环境变量。3:更改windows下载源:4:创建虚拟环境:5: 下载jupyter_contrib_nbextensions6:配置拓展功能:二:Anaconda的基本使用:1:创建虚拟环境:2:虚拟环境中安装包:三:Jupyter NoteBook的使用:1: 进入Jupyter NoteBook:2:创建notebook文件并修改文件名:3:常用快捷键:一: Ana

2020-11-29 13:49:40 675 1

原创 python面试知识点总结(一):

目录一:python函数:1:引用传值还是传递的数值本身?2:解释**kwargs与*args:二:python列表:1:求列表的交集,并集,差集:三:字符串:1:反转字符串:四:手写单例模式:五:斐波那锲数列:六:lambda表达式和推导式:1:lambda表达式:2:推导式:七:sort 与sorted的区别:八:手写装饰器:一:python函数:1:引用传值还是传递的数值本身?1: 如果传递的是可变类型的数据,则是引用传值。2:如果传递的是不可变类型则是数值传值。2:解释**kwargs

2020-11-28 16:38:56 466

原创 Scrapy框架----数据建模与请求

目录一: 建立数据模型:二:Scrapy如何实现翻页请求:1:前端网页分析2:编写代码:三:scrapy.Request参数:一: 建立数据模型:1:定义数据模型的作用:提前规划好要爬取那些数据。2:定义数据模型的位置:items.py1:在items.py文件中自定义要提取的字段:import scrapyclass MyspiderItem(scrapy.Item): name = scrapy.Field() level = scrapy.Field() tex

2020-11-27 14:23:46 439

原创 Scrapy框架---基础入门

目录一:Scrapy框架的执行流程:二:Scrapy的三个内置对象:三:Scrapy入门使用:1: 环境初始化:2: Scrapy框架的熟悉:四:爬取马场网站上的信息:五:整个流程:一:Scrapy框架的执行流程:1: 爬虫模块指定起始的url,经过爬虫中间件,交给引擎。2:由Scrapy框架(引擎模块)创建出请求对象,将请求对象传入调度器(队列)。3:引擎模块,在调度器模块取出请求对象,经过下载中间件,交给下载器。4:下载器,下载完成后,将响应对象经过下载中间件,交给引擎模块。5:引擎模块经

2020-11-26 16:13:36 510 1

原创 MongoDB数据库与python交互

一:安装工具:pip install pymongo二:基本使用:from pymongo import MongoClient# 1: 创建客户端对象:mongo_client = MongoClient(host="127.0.0.1", port=27017)# 2:获取集合对象(如果数据库和集合对象不存在,如果插入了数据,则数据库和集合会自动创建)# <方案一>:点语法 : 客户端对象.数据库名.集合名称。collection = mongo_client.pytho

2020-11-26 10:42:37 335

原创 MongoDB---聚合和索引

目录一:聚合操作:1: 管道名和表达式:2:分组管道:二:索引操作:一:聚合操作:1: 管道名和表达式:2:分组管道:聚合的语法格式:db.集合名称.aggregate([ {管道名 : {表达式}}, {管道名 : {表达式}}, {管道名 : {表达式}}, ...])二:索引操作:...

2020-11-26 10:04:50 565

原创 MongoDB数据库---基础操作

目录一:增删改查操作:1: 增加操作:2:保存操作:3:查询操作:4:更新操作:5:删除操作:二:高级查询:三:聚合操作:四:索引操作:一:增删改查操作:1: 增加操作:1: db.集合名.insert({“key”: “value”})2: db.集合名.insert({"_id", “自定义的id”,“key”: “value”})3:一次性插入多条数据:db.集合名.M2:保存操作:db.集合名.save({‘id’: ‘id值’, ‘被修改的key’: ‘被修改的值’}

2020-11-25 20:57:31 295

原创 MongoDB数据库---基本使用

目录一:MongoDB服务端与客户端启动:1.1:测试方式启动服务端1.2:生产方式启动服务端:1.3: 启动客户端:二:MongoDB数据库的操作:三: MongoDB集合的命令:四:mongodb中常见的数据类型:一:MongoDB服务端与客户端启动:1:服务端默认端口:270172: 配置文件位置:/etc/mongod.conf3: 默认日志文件位置:/var/log/mongodb/mongod.log1.1:测试方式启动服务端1:启动mongdb : sudo service

2020-11-25 16:27:37 400

原创 爬虫----js逆向/js反解析

一:js反解析思路:1:抓包先找到请求url:2:分析请求要携带的参数:请求头,参数。3:抓包分析哪些参数是改变的,哪些是不变的。4:分析参数的生成过程—在js中寻找参数的生成过程。案例:分析有道翻译:1: 找到请求的url:2:分析请求要携带的参数:请求头,参数。先分析出最常见的要携带的请求头参数:3:分析请求参数,哪些是改变的:4:在js中搜索,salt或者sign返回的地方:5:找到代码位置,分析js代码:按住ctrl + F :在js中搜索。(图中错了,时间戳是

2020-11-25 12:26:34 2396

原创 爬虫----反爬与反反爬

目录一:反爬:1: 反爬的三个方向:2:基于身份识别进行反爬:3:常见基于爬虫行为进行反爬4:常见基于数据加密进行反爬:二:反反爬:一:反爬:1: 反爬的三个方向:1:基于身份识别进行反爬。2:基于爬虫行为进行反爬。3:基于数据加密进行反爬。2:基于身份识别进行反爬:3:常见基于爬虫行为进行反爬4:常见基于数据加密进行反爬:二:反反爬:...

2020-11-25 10:39:12 3342

原创 爬虫---selenium的使用

目录一:selenium的基本用法:1:控制浏览器截图:2:无界面浏览器驱动:PhantomJS3:模拟百度搜索:4:driver对象的常用属性和方法:5:driver对象获取标签元素的方法:6:对标签元素的操作:二:selenium的高级用法:1:掌握 selenium控制标签页的切换2:掌握 selenium控制iframe的切换3:掌握 利用selenium获取cookie的方法4:掌握 页面等待4.1: 强制等待:4.2:隐式等待:4.3:显示等待:4.4:手动实现页面等待:5:掌握 seleniu

2020-11-23 18:15:48 7296 6

原创 爬虫---高性能爬虫

目录一:单线程爬虫:1:新浪图片NBA标题和图片的爬取:二:多线程爬虫:1: 回顾多线程的方法:2:回顾队列的使用:3:多线程爬虫的执行流程:4:糗事百科多线程爬虫:三:多进程爬虫:一:单线程爬虫:1:新浪图片NBA标题和图片的爬取:"""抓取的网站链接:http://api.slide.news.sina.com.cn/interface/api_album.php?activity_size=198_132&size=img&ch_id=2&sub_ch=k&"

2020-11-23 11:51:10 482 2

原创 爬虫---数据的提取

目录一:requests模块1:cookieJar与字典的转换:2:证书认证问题:3:设置超时时长:4:一:requests模块1:cookieJar与字典的转换:1:requests.utils.dict_from_cookiejar():将cookiedir类型转换成字典类型。2:requests.utils.cookiejar_from_dict():将字典类型转换成cookiejar类型。import requests"""requests获取的cookie是个cookieJar,

2020-11-22 20:02:10 968

原创 爬虫---requests模块简单使用

目录一: requests模块的基本使用:二:response相应的其他常用属性和方法:一: requests模块的基本使用:response.text存在编码问题,原因是requests底层会自己推到编码,然后进行解码,如果推导的和编码不一致就会出现编码问题,需要提前指定:response.encoding = “utf-8”response.content获取的是二进制类型,需要自行转换:response.content.decode(‘gbk’)import requestsurl =

2020-11-19 20:57:32 535

原创 缓存设计

目录一:缓存介绍:1:缓存架构:2:缓存粒度:二:项目的缓存设计:三:缓存的过期和淘汰:四:缓存问题:五:缓存淘汰:六:实现缓存对象:七:实现缓存集合:一:缓存介绍:缓存的优点:减小数据库的访问压力, 提高并发能力。1:缓存架构:1: 对于查询来说,可以增加缓存。用户发送请求,现在缓存中查询,查询到直接返回数据,查询不到,查询Mysql数据库,然后回填缓存,返回数据。2:多级缓存:2.1: 前端也可以搭建缓存,使用浏览器,cache,sqlite3,搭建前端缓存。2.2:后端一级缓存:使

2020-11-17 16:09:58 691

原创 Redis--分布式开发

目录一: 数据库主从1:redis数据库的配置信息:2: redis主从配置:二:哨兵机制:三: 集群:一: 数据库主从1:redis数据库的配置信息:1: redis的配置文件所在地:cd /etc/redissudo vi redis.config2: redis主从配置:二:哨兵机制:三: 集群:...

2020-11-16 15:42:42 310

原创 Redis单机

一:Redis常用命令:1: String:get:set:mget:mset:type:incr:decr:incrby:2:键命令:delexistsexpirettlkeysflushdb : 删除所有的键clear: 清屏ttl 如果时间过期,新版的将-1,改成-2了。3:hash:存储对象hsethgethmsethmgethdel4:listlpush:lrange:rpush:lset:lpop:rpop:

2020-11-15 17:30:54 350

原创 PY屠戮苍生---排序算法

目录一:冒泡排序二:选择排序:三:插入排序:四:希尔排序:五:快速排序:六:归并排序:一:冒泡排序二:选择排序:三:插入排序:四:希尔排序:五:快速排序:六:归并排序:...

2020-11-15 10:13:31 283

原创 极の都市---贪心算法

一:逃脱游戏:1: 思路一:递归操作from enum import Enumclass Index(Enum): GOOD = 1 BAD = 2 UNKNOW = 3def can_jump(nums): # 创建另外一个列表,根传入的nums列表数量一致。 memo = [Index.UNKNOW] * len(nums) # 将最后一个设置成可以到达 memo[-1] = Index.GOOD # 从倒数第二个位置,逆序遍

2020-11-15 10:12:34 302

原创 MYSQL分布式设计

目录一:MYSQL分布式1.1:复制:1.2:分片:二:Redis单机:三:Redis分布式:一:MYSQL分布式1.1:复制:复制的作用:1:对数据进行备份,实现高可用。2:通过读写分离, 提高吞吐量, 实现高性能。复制的原理:1:主服务器将写入/删除/更新操作,存入主服务器二进制文件。2:从服务器上的IO线程1.2:分片:二:Redis单机:三:Redis分布式:...

2020-11-13 17:29:06 2661 1

原创 百变星君---文章模块(1)

目录一:获取文章详情:1:文章详情表分析:2:录入文章内容表数据:二:关注用户:三:取消关注用户:四:用户关注列表:一:获取文章详情:1:文章详情表分析:分析:要返回文章的内容信息,文章表,文章的用户。而这三种信息分别来源于三张表。如果User表作为主表,则无法查询文章的信息,所以只能文章表作为主表。2:录入文章内容表数据:二:关注用户:三:取消关注用户:四:用户关注列表:...

2020-11-11 18:13:16 347

原创 解决高并发问题的思路

目录一:页面静态化:二:搭建Redis集群:三:CDN加速:四:消息队列:五:分布式开发:六:MYSQL数据库读写分离:七:数据库的水平分表和垂直分表:一:页面静态化:答:正常流程是,用户访问首页信息,服务器先返回浏览器模板页面,然后浏览器再次动态请求服务器数据库中内容,浏览器得到内容后再填充页面。但是对于像网站首页,用户访问量大,并且不易修改的网页,我们可以采用异步的方式,让另外一个celery每隔1个小时生成重新生成一次网页,一个小时内,后端直接返回给前端渲染好的页面,而不是先返回模板页面,再要求

2020-11-10 16:40:42 411

原创 分布式ID

目录方案一:UUID:通用唯一标识码:方案二:数据库主键自增:方案三:Redis:方案四:雪花算法:4.1:了解64比特:4.2:时钟回拨问题:4.2:雪花算法的python版本:方案一:UUID:通用唯一标识码:1: UUID包括:网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素。2:UUID是由128位二进制组成,一般转换成十六进制,然后用String表示。3: UUID的优点::3.1:通过本地生成,没有经过网络I/O,性能较快。3.2:无序,无法预测他的生

2020-11-10 14:07:17 315

原创 百变星君---头条模块

这里写目录标题一:获取用户频道:1.1: 数据的准备:1.2:接口分析:1.3:接口代码:1.4:路由信息与测试:二:获取所有频道:三:修改用户频道:四:首页文章列表:一:获取用户频道:1.1: 数据的准备:1: 创建有关用户频道的模型类:common/models/article.pyfrom datetime import datetimefrom sqlalchemy.dialects.mysql import DATETIMEfrom app import dbclass Cha

2020-11-10 11:37:26 363

原创 超卖问题和高并发问题

目录一:抢订单环节带来的问题二:出现高并发和超卖的原因?三:解决方案:3.1:数据迁移:3.2:队列:3.3:Mysql二段式提交+redis原子自增:3.4:服务器解决性能瓶颈问题一:抢订单环节带来的问题高并发:大量用户同一时间抢购,网站瞬时访问量剧增,导致服务器压力大 。超卖问题:成功下订单买到商品的人数,超过数据库最大库存数量。二:出现高并发和超卖的原因?1:首先MySQL自身对于高并发的处理性能就会出现问题,一般来说,MySQL的处理性能会随着并发thread上升而上升,但是到了一定

2020-11-09 16:12:51 1036

原创 百变星君---用户模块

目录一:获取验证码:二:注册登录:三:获取用户头像:四:修改用户头像:五:查看前端交互:一:获取验证码:1:自定义转换器,然后:cmmon/utils/converters.pyfrom werkzeug.routing import BaseConverter# 1:自定义转换器继承于BaseConverterclass MobileConverter(BaseConverter): """ 手机号格式 """ # 2:重写regex regex =

2020-11-09 12:04:08 687

原创 百变星君---项目初始化搭建

目录一:项目经理立项:1:创建项目,提交到远程仓库:2:项目经理将程序员添加到开发组:一:项目经理立项:1:创建项目,提交到远程仓库:1:项目经理登录GitLab,创建项目,名为TopNews。2:项目经理本地创建TopNews项目。3:项目经理将本地仓库提交到远程仓库。2:项目经理将程序员添加到开发组:...

2020-11-08 16:12:41 365

原创 JWT单点登录

目录)一:解释刷新tocken机制?二:JWT登录的优点?三:如何防止tocken被劫持?一:解释刷新tocken机制?答:当用户第一次登录时,认证用户后,返回给用户两个tocken,一个专门用于登录的登录tocken,通常设置两个小时。另外一个用于刷新tocken,通常设置14天。当在两个小时内,验证用户的登录tocken就可以登录,两个小时过后,用户的登录tocken失效,用户携带刷新tocken来到后端,后端返回给前端一个响应,前端看到这个响应后,请求刷新tocken,后端此时设置新的tocke

2020-11-08 11:52:19 1782 1

原创 PyCharm远程执行

目录一:配置windows中pycharm与远程的文件传输:二:配置自动上传和下载:三:选择远程解释器:一:配置windows中pycharm与远程的文件传输:1:打开「Tools」设置 「Deployment」。2:点击+, 选择SFTP, 填写服务器名字(任意)。3:查看远程的ip地址。192.168.44.128。4:填写配置信息(ip地址和登录信息)5:远程使用命令新建目录。6:填写文件映射信息。第一步:第三步:查看ip地址:192.168.44.128第四步:第五步

2020-11-06 16:19:23 1647 1

原创 Git高阶

一:Ditflow工作流:二:流程演示:2.1:模拟项目经理:1:远程建立仓库2:本地建立一个仓库:2.2:模拟程序员:创建自己的功能分支在自己功能分支上开发提交合并请求在维护分支

2020-11-06 13:52:11 492 1

原创 PY屠戮苍生----树

目录一:树的术语:二:树的种类:三:树的存储:四:树的应用场景:4.1:数据库索引的底层原理:一:树的术语:1:节点的度:一个节点含有子树的个数。(向下分叉的个数)2:树的度:一棵树中,最大的(节点的度)称为树的度。3:叶节点:度为0的节点。4:父节点:如果一个节点含有子节点,则这个节点就称为子节点的父节点。5:子节点:一个节点含有的子树的根节点。6:兄弟节点:具有相同父亲节点的互为兄弟节点。7:节点的层次:从根算起,根是第一层,根的子节点是第二层…8:树的高度:树中节点的最大层次。9

2020-11-06 11:05:57 306

原创 计算机网络

目录一:TCP报文结构:二:TCP三次握手流程:三:TCP四次挥手流程:四:面试官的问题:1:TCP为什么三次握手?两次可以吗?2:为什么客户端最后还要等待2MSL3:为什么建立连接是三次握手,关闭连接确是四次挥手呢?4:如果已经建立了连接,但是客户端突然出现故障了怎么办?一:TCP报文结构:1:源端口和目的端口:记录通讯双方的端口号。2:序号位:字节序号,TCP连接中传送的字节流中的每个字节都按顺序编号。案例:一段报文的序号字段值是 101 ,而携带的数据共有100字段,显然下一个报文段(如果还有

2020-11-05 08:43:31 367

原创 Flask_restful拓展

@目录@一:视图:1:基本使用1.1:安装 flask-restful:1.2: 构建RESTAPI1.3:flask_restful返回时中文编码问题:2:类视图装饰器3:蓝图和类视图二:请求:三:响应:1:序列化2:自定义JSON一:视图:1:基本使用1.1:安装 flask-restful:pip install flask-restful1.2: 构建RESTAPI1:创建app对象。2:将app对象包装成具备restful风格的组件对象。3:定义类视图继承于Resourse。

2020-11-03 09:19:29 1174

原创 FLASK---高级处理

标题一:钩子函数:二:蓝图:三:上下文:四:综合认证:五:应用配置:一:钩子函数:二:蓝图:1: 在模块的初始化文件创建蓝图对象。2:在视图文件中,利用蓝图对象绑定路由信息。3:将蓝图对象注册到app中。4:模块的初始化文件中导入视图文件中的视图。三:上下文:四:综合认证:五:应用配置:...

2020-11-02 16:38:14 612

原创 python设计模式

一:单例设计模式:

2020-11-01 18:27:11 333

01-GO语言开发环境的搭建.md

Go

2021-03-25

美多商城后台项目.md

适合DRF练手项目

2021-03-19

DRF框架基础.pdf

DRF框架快速入门的人员

2021-03-14

Django商城项目前台项目

django整个的前台项目的开发流程。

2020-12-30

MySQL的底层原理

mysql的底层原理

2020-12-21

数据科学-Pandas数据分析讲义.pdf

数据分析讲义

2020-11-30

mysql主从服务器的配置.md

mysql读写分离的配置,配置django配置,数据库配置,linux配置

2020-09-16

空空如也

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

TA关注的人

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