- 博客(53)
- 收藏
- 关注
原创 网络(DHCP工作过程)
1. 什么是DHCP: DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。2. DHCP功能:保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。DHC...
2020-04-10 20:32:49
499
原创 数据库(索引)
1. 概念: DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹 配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索 引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查 询的速度。2. 底层结构:2.1 B+树: 2.1.1 概念: 浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝 色...
2020-04-01 17:26:21
188
原创 前端(服务器应答)
1. 服务器应答过程:1.1 输入网址: 当你开始输入网址比如www.cnblogs.com时浏览器就可以在书签或者历史记录里面 去搜索相关的网址推荐给你。1.2 浏览器查找域名的IP地址: 1.2.1 请求发起后,浏览器首先会解析这个域名,首先它会查看本地硬盘的 hosts 文 件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件 里面的 ip 地址。...
2020-04-01 17:09:39
360
原创 加密(对称加密和非对称加密)
1. 对称加密:1.1 概念:加密和解密都使用同一个密钥。1.2 优点:对称加密相比非对称加密速度更快。1.3 缺点:当传递的密钥过程被获取时,对称加密下的数据传输相当于明文传输。在传输过程中,必须保证同一对用户和服务端在进行数据传输时所使用的密钥是唯一的,密钥管理较为困难。1.4 常见对称加密算法:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIP...
2020-03-30 21:05:57
341
1
原创 Python(常用数据结构)
1. 序列: 序列中的每个元素都有自己的编号。Python中有6种内建的序列。其中列表和元组是最常见的类型。其他包括字符串、Unicode字符串、buffer对象和xrange对象。 区别:列表是可变的,字符串和元组不可变。 1.1 列表: 1.1.1 列表常用操作: "-".join(k) //使用“”中的字符将列表中的元素连接起来,可以为空字符串 i.append...
2019-11-12 16:43:03
281
原创 进程
1. 概念: 1.1 进程是程序的一次执行。 1.2 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 1.3 进程时程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。2. 产生原因: 为使程序并发执行,且对并发执行的程序加以描述和控制。3. 特征: 3.1 动态性:进程实体有一定的生命期,由创建而产生,由调度而执行,由撤销而消亡。 3.2 并...
2019-10-20 17:34:12
316
原创 数据库(并发控制)
1. 封锁: 1.1 锁的基本类型: 排他锁(X锁,写锁):exclusive,用于写操作,一个数据对象在没有加任何锁的情况下,事务可以对其加X锁,其他事务不能对其进行加锁。 共享锁(S锁,读锁):share,用于读操作 ,一个事务可以对没有被添加X锁的数据对象加S锁,其他事务不能再对其加X锁,但可以加S锁。 1.2 封锁协议: 一级封锁协议:事务在对数据对象进行修改之前,必须...
2019-10-19 16:51:06
166
原创 数据库(事务)
1. 什么是事务:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。2. 事务的特性: 2.1 原子性:事务包含的操作要么全部执行,要么全不执行。 2.2 隔离性:事务执行的过程是独立的,不相互干扰,一个事务不会访问到另一个正在执行的事务的数据。 2.3 一致性:事务执行前和执行后都必须仍处于一致性状态。 2.4 持久性:当一个事务被提交了,那么对数据库的修改...
2019-10-18 13:52:25
300
原创 面试题目(用两个栈实现一个队列)
用两个栈实现一个队列代码:class Solution: def __init__(self): self.first_stack = list() self.second_stack = list() def push(self, node): # write code here self.first_stack.append(node) def pop...
2019-08-11 22:41:07
139
原创 前端(Jinja2)
1. 什么是Jinja2模板引擎python的Web开发中, 业务逻辑(实质就是视图函数的内容)和页面逻辑(html文件)分开的, 使得代码的可读性增强, 代码容易理解和维护;模板渲染: 在html文件中,通过动态赋值,将重新翻译好的html文件(模板引擎生效) 返回给用户的过程。2. 语法2.1 Jinja2变量显示语法: {{ 变量名 }} # 完整的过滤器查看位置: http:...
2019-02-28 22:56:28
8805
原创 前端(Bootstrop、Flask)
1. Bootstrop1.1 什么是Bootstrop: Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端 开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。2.2 学习网站 官方中文...
2019-02-28 20:55:24
841
原创 数据分析(pandas)
1. 导入第三方模块import pandas as pdimport numpy as npimport string2. 创建Series对象2.1 通过列表创建Series对象: 默认索引从0开始,可用index指定索引 pd.Series(data=array) pd.Series(data=array, index=['A', 'B', 'C'])2.2 通过nump...
2019-02-28 14:43:44
259
原创 数据分析(numpy)
1. 什么是numpy快速,方便的科学计算基础库(主要是对数值的计算、多维数组的运算);2. numpy轴的理解一维数组: [1,2,3,45] ----0轴二维数组: [[1,2,3,45], [1,2,3,45]] ----0轴, 1轴(类似于x轴和y轴)3. 常用操作3.1 numpy中创建数组(矩阵): 方法1: a = np.array([1,2,3,4,5]...
2019-02-27 17:31:37
223
原创 绘图(echart)
1. 绘制条形图from pyecharts import Barx_movies_name = ["猩球崛起", "敦刻尔克", "蜘蛛侠", "战狼2"]y_16 = [15746, 312, 4497, 319]y_15 = [12357, 156, 2045, 168]y_14 = [2358, 399, 2358, 362]bar = Bar(title="某年内地电影票...
2019-02-27 16:20:38
256
原创 绘图(matplotlib)
1. 什么是matplotlibMatplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形2. matplotlib的使用2.1 导入第三方模块: from matplotlib import pyplot as plt from matplotlib import font_manager2.2 设置字符集,解决中文显示...
2019-02-27 15:49:11
266
原创 爬虫(BeautifulSoup)
1. 什么是BeautifulSoupBeautiful Soup(简称BS4)提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为tiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。不需要考虑编码方式,除非文档没有指定,重新原始编码方式即可。2. BS4的4种对象2.1 BeautifulSou...
2019-02-27 14:30:28
1333
原创 爬虫(urllib及requests模块)
1. HTTP常见状态码2xxx: 成功3xxx: 重定向4xxx: 客户端的问题5xxxx: 服务端的问题404: 页面找不到403: 拒绝访问200: 成功访问消息100 Continue101 Switching Protocols102 Processing成功200 OK201 Created202 Accepted203 Non-Authorita...
2019-02-27 11:55:43
443
原创 爬虫(初识爬虫)
1. 什么是爬虫网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。2. 爬虫的实现步骤- 分析需要获取的信息在网页源码中的规律- 获取网页源码- 解析页面内容- 获取所需要的信息示例:爬取百度贴吧图片'''url规律: https://tieba.baidu.com/p/5752826839?pn=1 ht...
2019-02-23 16:08:21
262
原创 正则表达式
1. 什么是正则表达式正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。2.通配符* 代表一个或多个字符? 代表单个字符. 当前目录.. 当前目录的上一级目录[0-9] 单个字符为0~9[a-z...
2019-02-23 15:40:29
114
原创 爬虫(Scrapy架构)
1. 什么是Scrapy架构scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码,就能够快速的抓取到数据内容。Scrapy 使用了 Twisted['twɪstɪd]异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。2. Scrapy架构组件 引擎(Scrapy):用来处...
2019-02-20 17:42:48
2855
原创 词云
1. 什么是词云由词汇组成类似云的彩色图形。2. 词云的优势“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。3. 词云的实现3.1 引入第三方模块: import jieba 切割中文的模块 from PIL import Image ...
2019-02-20 15:35:04
1384
原创 爬虫(xpath)
1. 什么是xpathXPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。2. xpath在爬虫中的使用2.1 导入第三方模块: import lxml.etree as etree2.2 将爬取到的html内容转化为xpath可以解析的格式: selector = etree.HTML(html)2.3 xpath的常...
2019-02-20 15:05:11
272
原创 爬虫(定向爬虫)
1. 什么是定向爬虫定向爬虫是网络爬虫的一种。定向爬虫可以精准的获取目标站点信息。基于模版的信息提取技术,能提供更加精准的信息2. 定向爬虫的实现2.1 导入第三方模块:import requestsfrom bs4 import BeautifulSoupimport bs42.2 爬取网页内容:def get_content(url,): try: ...
2019-02-20 14:46:40
1136
原创 web
1. html1.1 什么是html: html(Hyper Text Markup Language)是用来创建网页的标记语言;1.2 网页基本结构: <!--声明为html5--> <!DOCTYPE html> <!--html是一整个人--> <html lang="en"&am
2019-02-20 14:28:16
156
原创 socketserver
1. 什么是socket socket并不能多并发,只能支持一个用户,socketserver 简化了编写网络服务程序的任务,socketserver是socket的再封装。socketserver在python2中为SocketServer,在python3取消了首字母大写,改名为socketserver。socketserver中包含了两种类,一种为服务类(server class),一...
2019-02-20 11:18:58
807
原创 UDP
1. 基于UDP通信1.1 实现server服务器: import socket # 1. 实例化socket对象 udpServer = socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM) # 2. 绑定IP和端口 # 172.25.254.250 # 0.0.0.0代表开放所有的IP地址 udpServer...
2019-02-20 10:57:06
134
原创 TCP
1. TCP实现网页信息获取import socketclient = socket.socket()client.connect(("www.baidu.com", 80))client.send(b"GET / HTTP/1.1\r\nHost:www.baidu.com\r\nConnection:close\r\n")recvData = client.recv(1024*10...
2019-02-20 10:50:28
136
原创 TCP和UDP
1. TCP和UDP的区别(1)、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接(2)、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付, Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行...
2019-01-23 09:51:02
140
原创 Python(进程间通信)
1. 队列import multiprocessing# 线程通信=====(队列) ---- from queue import Queue# 进程池中进程通信=====(队列) --- from multiprocess.Manager import Queue# 多进程通信=====(队列) ---- from multiprocess import Queueimport tim...
2019-01-22 22:53:31
985
原创 Python(进程池)
1. 什么是进程池1.1 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大 量时间,如果操作的对象数目不大时,还可以直接适用Process类动态生成多个进程,几十个尚可,若上百个 甚至更多时,手动限制进程数量就显得特别繁琐,此时进程池就显得尤为重要。 进程池Pool类可以提供指定数量的进程供用户调用,当有新的请求提交至Pool中时,...
2019-01-22 22:34:19
283
原创 Python(进程锁)
1. 为什么要使用进程锁1.1 当使用多进程对同一共享资源进行使用时,可能会出现各种问题,例如数据写入文件时顺序错误、当进程需要依 次修改同一个数据时,第一个进程还未完成修改,第二个进程就读取未经修改的数据进行修改。2. 如何实现进程锁2.1import multiprocessingdef work(f, item, lock): # 2). 开始此任务前,为防止数据写...
2019-01-22 22:25:06
1025
原创 Python(进程)
1. 如何创建进程 1.1 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 1.2 子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程...
2019-01-22 22:03:08
106
原创 Python(跨平台实现多进程)
1. 什么是跨平台1.1 如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows 上无法用Python编写多进程的程序? 由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程 模块。2. 什么是multiprocessing2.1 mul...
2019-01-22 21:41:51
1579
原创 Python(线程池)
1. 什么是线程池 官方解释:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段...
2019-01-21 19:39:41
841
原创 Python(类的继承实现生产者-消费者模型)
1. 什么是生产者-消费者模型某个模块专门负责身缠数据, 可以认为是工厂;另外一个模块负责对生产的数据进行处理的, 可以认为是消费者.在生产者和消费者之间加个缓冲区(队列queue实现), 可以认为是商店. 生产者 > 缓冲区(队列) > 消费者2. 使用队列的优点1. 解耦:生产者和消费者的依赖关系减少;2. 支持并发;是两个独立的个体, 可并发执行;3. 需求...
2019-01-21 19:17:44
291
原创 Python(线程锁)
1. 为什么要设置线程锁1.1 多个线程对同一个数据进行修改时,可能会出现不可预料的情况.2. 如何实现线程锁2.1 实例化对象方式实现线程锁:import threading# 银行存钱和取钱def add(lock): global money # 声明money为全局变量 for i in range(1000000): # 2. 操作...
2019-01-21 18:55:18
237
原创 Python(队列与线程)
1. 队列的理解1.1 什么是队列: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和 栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。1.2 为什么要使用队列: 当使用多线程时,一个或多个线程生产数据,另一个或多个线程处理数据,如果生产数据与处理数据速率不匹配时,使用队列...
2019-01-19 23:54:23
300
原创 Python(多线程时间监测)
1. 引入第三方模块1.1 import threading import time2. 实现timeit方法(函数运行时间)2.1 def timeit(f): def wrapper(*args, **kwargs): start_time = time.time() res = f(*args, **kwargs) end_t...
2019-01-19 22:47:33
3479
原创 Python(多线程实现下载器)
1. 引入第三方模块1.1 引入threading模块: import threading1.2 引入urlopen: from urllib.request import urlopen2. 创建DownLoadThread类2.1 class DownLoadThread(threading.Thread): //继承threading.Thread类 def _...
2019-01-19 22:34:00
2016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人