自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 多任务,并发、并行

多任务 单核CPU执行多任务:操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。 并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务...

2018-07-14 19:58:54 672

原创 正则表达式

re模块操作 #coding=utf-8 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group()匹配单个字符字符功能.匹配任意1个字符(除了\n)[ ]匹配[ ]...

2018-07-14 10:04:52 72

原创 TCP VS UDP 网络协议模型 TCP/IP 协议模型 三次握手 四次挥手

TCP VS UDP TCP 可靠、稳定 一对一 TCP在传递数据之前 会有三次握手来建立连接,传递数据时,有确认,窗口,重传,拥塞控制机制,数据传送完毕后会断开连接用来节约系统资源 TCP缺点:慢、效率低,占用系统资源高,传递数据之前,需建立连接,消耗时间,数据传递时,确认机制,重传机制,拥塞控制机制会消耗大量时间,同时占用系统的cpu,内存等硬件资源 被攻击(确认机制,三次握手机制,被...

2018-07-13 21:43:17 227

原创 TCP

TCPTCP代码:tcp客户端:import socket# 创建sockettcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 目的信息server_ip = input("请输入服务器ip:")server_port = int(input("请输入服务器port:"))# 链接服务器...

2018-07-13 21:11:25 95 1

原创 TCP简介

TCP介绍        TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话""TCP特点1. 面向连接通信双方必须先建立连接才能进行数据的传输,双方都必须为该连...

2018-07-13 20:58:12 195

原创 udp聊天器

import socketdef send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" # 1. 从键盘输入数据 msg = input("\n请输入要发送的数据:") # 2. 输入对方的ip地址 addr = input("\n请输入对方的ip地址:") # 3. 输入对方的port por...

2018-07-13 20:54:35 78

原创 UDP

1. udp网络程序-发送数据创建客户端套接字发送/接收数据关闭套接字2. udp代码 配合网络调试助手进行测试import socket# 创建套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 自动关闭端口udp_socket.setsockopt(socket.SOL_SOCKET, socket.S...

2018-07-13 20:44:47 920 1

原创 socket简介

socket        一台电脑可以通过进程号PID来唯一标识一个进程 tcp/ip协议        网络层ip地址可以唯一标识网络中的主机 传输层 协议+端口 可以唯一标识主机中的应用进程(进程) 网络中的进程间通信就可以利用这个标志与其他进程交互 进程:运行的程序及运行时用到的资源 进程间通信: 运行程序之间的数据共享 socket 进程间通信的一种方式 能实现不同主机间的进程通信...

2018-07-13 19:59:15 158

原创 网络通信ip和端口

网络的定义:    网络就是一种辅助双方或者多方能够连接在一起的工具使用网络的目的:    为了联通多方然后进行通信用的,即把数据从一方传递给另一方    为了让在不同的电脑上运行软件之间能够互相传递数据,就需要借助网络的功能网络编程        让在不同的电脑上的软件能够进行数据的传递,即进程之间的通信ip地址    用来在网络中标记一台电脑,在本地局域网上是唯一的    每个ip地址包括两部...

2018-07-13 10:29:39 3587

原创 urllib的学习

1 urllib介绍除了requests模块可以发送请求之外, urllib模块也可以实现请求的发送,只是操作方法略有不同!urllib在python中分为urllib和urllib2,在python3中为urllib下面以python3的urllib为例进行讲解2 urllib的基本方法介绍2.1 urllib.urlopoen传入URL地址import urllib.requestrespo...

2018-07-13 08:32:32 151

原创 requests模块的其他方法

1 requests中cookirJar的处理方法使用request获取的resposne对象,具有cookies属性,能够获取对方服务器设置在本地的cookie,但是如何使用这些cookie呢?1.1 方法介绍response.cookies是CookieJar类型使用requests.utils.dict_from_cookiejar,能够实现把cookiejar对象转化为字典1.2 方法展示...

2018-07-13 08:31:59 123

原创 request模块的深入和使用

1 使用requests发送POST请求使用post请求的地方:登录注册( POST 比 GET 更安全)需要传输大文本内容的时候( POST 请求对数据长度没有要求)1.1 requests发送post请求语法:用法: response = requests.post("http://www.baidu.com/", \ data = data,headers=headers)data ...

2018-07-13 08:30:13 422

原创 python数据结构-树的列表展示

列表表示        在由列表表示的树中,我们将从 Python 的列表数据结构开始,并编写上面定义的函数。虽然将接口作为一组操作在列表上编写与我们实现的其他抽象数据类型有点不同,但这样做是有趣的,因为它为我们提供了一个简单的递归数据结构,我们可以直接查看和检查。在列表树的列表中,我们将根节点的值存储为列表的第一个元素。列表的第二个元素本身将是一个表示左子树的列表。列表的第三个元素将是表示右子树...

2018-07-12 11:35:34 1705

原创 python数据结构-树的基本定义

树        树在计算机科学的许多领域中使用,包括操作系统,图形,数据库系统和计算机网络。树数据结构与他们的植物表亲有许多共同之处。树数据结构具有根,分支和叶。自然界中的树和计算机科学中的树之间的区别在于树数据结构的根在顶部,其叶在底部。        第一个例子:一些动物的生物分类的实例,        第一个属性是树是分层的。通过分层,我们的意思是树的层次结构,更接近顶部的是抽象的东西和底...

2018-07-12 09:52:16 266

原创 Git简介

Git管理源代码0.1. Git简介0.2. 工作区暂存区和仓库区0.3. Git单人本地仓库操作0.4. Git远程仓库Github0.4.1. 创建远程仓库0.4.2. 克隆项目0.4.3. 多人协同开发0.4.4. 代码冲突0.4.5. 标签0.4.6. 分支Published with GitBookGitGit 是目前世界上最先进的分布式版本控制系统(没有之一)作用源代码管理为什么要进行...

2018-07-11 14:12:39 119

原创 python数据结构-二分查找

二分查找        有序列表对于我们的比较是很有用的。在顺序查找中,当我们与第一个项进行比较时,如果第一个项不是我们要查找的,则最多还有 n-1 个项目。 二分查找从中间项开始,而不是按顺序查找列表。 如果该项是我们正在寻找的项,我们就完成了查找。 如果它不是,我们可以使用列表的有序性质来消除剩余项的一半。如果我们正在查找的项大于中间项,就可以消除中间项以及比中间项小的一半元素。如果该项在列表...

2018-07-11 11:15:46 108 1

原创 python数据结构-顺序查找

搜索    在项集合中查找特定的算法过程,搜索通常对于项是否存在返回True或False,有时它可能返回项被找到的地方,该成员存在 返回True 否则False。在python中使用in运算符可以非常简单的判断顺序查找   当数据项存储在诸如列表的集合中时,我们说它们具有线性或顺序关系。 每个数据项都存储在相对于其他数据项的位置。 在 Python 列表中,这些相对位置是单个项的索引值。由于这些索...

2018-07-11 09:53:54 724

原创 数据结构-Dequeue

Deque        deque(也称为双端队列)是与队列类似的项的有序集合。它有两个端部,首部和尾部,并且项在集合中保持不变。deque 不同的地方是添加和删除项是非限制性的。可以在前面或后面添加新项。同样,可以从任一端移除现有项。如下展示了一个 Python 数据对象的 deque 。    deque 抽象数据类型由以下结构和操作定义。如上所述,deque 被构造为项的有序集合,其中项从...

2018-07-11 08:48:05 2189

原创 python常用模块-range模块

# range包前不包后# 7,6,5,4,3,2,1for i in range(7, 0, -1): print(i)print("*" * 20)# 0,1,2,3,4,5,6for i in range(0, 7): print(i)print("*" * 20)# 0,1,2,3,4,5,6for i in range(7): print...

2018-07-11 00:15:06 331

原创 requests模块的入门使用

1.requests模块,而不是urllibrequests的底层实现就是urllibrequests在python2 和python3中通用,方法完全一样requests简单易用Requests能够自动帮助我们解压(gzip压缩的等)响应内容2 requests的作用作用:发送网络请求,返回响应数据中文文档 : http://docs.python-requests.org/zh_CN/late...

2018-07-11 00:10:18 115

原创 字符串相关的复习

1 字符、字符集字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等字符集(Character set)是多个字符的集合字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等ASCII编码是1个字节,而Unicode编码通常是2个字节。UTF-8是Unicode的实现方式之一,UTF-8是它是一种变长的编码方式,可以是...

2018-07-10 23:57:48 64

原创 爬虫-HTTP、HTTPS

1.http和https在发送请求,获取响应的过程中 就是发送http或https的请求,获取http或https的响应2 http和https的概念HTTP超文本传输协议默认端口号:80HTTPSHTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议默认端口号:443HTTPS比HTTP更安全,但是性能更低HTTP: 是互联网上应用最为广泛的一种网络协议,所有的www文件都必须...

2018-07-10 23:57:00 2789

原创 爬虫的基本分类和爬虫的流程

1 爬虫的分类根据被爬网站的数量的不同,我们把爬虫分为:通用爬虫 :通常指搜索引擎的爬虫(https://www.baidu.com)聚焦爬虫 :针对特定网站的爬虫2 爬虫的流程爬虫的工作流程:向起始url发送请求,并获取响应对响应进行提取如果提取url,则继续发送请求获取响应如果提取数据,则将数据进行保存3 robots协议Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,...

2018-07-10 23:14:53 4400

原创 python-爬虫基本概念

1.爬虫1.1 数据的来源去第三方的公司购买数据(比如企查查)去免费的数据网站下载数据(比如国家统计局)通过爬虫爬取数据人工收集数据(比如问卷调查)在上面的来源中:人工的方式费时费力,免费的数据网站上的数据质量不佳,很多第三方的数据公司他们的数据来源往往也是爬虫获取的,所以获取数据最有效的途径就是通过爬虫爬取爬虫获取的数据的用途:进行在网页或者是app上进行展示进行数据分析或者是机器学习相关的项目...

2018-07-10 23:11:17 88

原创 python-数据结构-队列的基本实现

队列抽象数据类型由以下结构和操作定义。如上所述,队列被构造为在队尾添加项的有序集合,并且从队首移除。队列保持 FIFO 排序属性。 队列操作如下:Queue() 创建一个空的新队列。 它不需要参数,并返回一个空队列。enqueue(item) 将新项添加到队尾。 它需要 item 作为参数,并不返回任何内容。dequeue() 从队首移除项。它不需要参数并返回 item。 队列被修改。isEmpt...

2018-07-10 14:17:35 157

原创 python-数据结构-栈-括号匹配

括号匹配   从空栈开始,从左到右处理括号字符串。如果一个符号是一个开始符号,将其作为一个信号,对应的结束符号稍后会出现。另一方面,如果符号是结束符号,弹出栈,只要弹出栈的开始符号可以匹配每个结束符号,则括号保持匹配状态。如果任何时候栈上没有出现符合开始符号的结束符号,则字符串不匹配。最后,当所有符号都被处理后,栈应该是空的。    在 Python 中,方括号 [ 和 ] 用于列表,花括号 { ...

2018-07-10 11:16:25 283

原创 python-数据结构-栈的基本实现

线性数据结构        一旦一个数据项被添加,它相对于前后元素一直保持该位置的不变         线性数据结构有两端,有时被称为左右,某些情况被称为前后,你也可以称为顶部和底部        接下来我们研究栈、队列、deques、列表1.0什么是栈栈(后进先出)是一个项的集合,添加移除新项总发生在同一端,这一端通常称为 顶部,与顶部相对应的端称为底部栈的底部很重要,因为在栈中靠近底部的项是存...

2018-07-10 10:35:36 374

原创 Flask-单元测试

单元测试为什么要测试?Web程序开发过程一般包括以下几个阶段:[需求分析,设计阶段,实现阶段,测试阶段]。其中测试阶段通过人工或自动来运行测试某个系统的功能。目的是检验其是否满足需求,并得出特定的结果,以达到弄清楚预期结果和实际结果之间的差别的最终目的。测试的分类:测试从软件开发过程可以分为:单元测试对单独的代码块(例如函数)分别进行测试,以保证它们的正确性集成测试对大量的程序单元的协同工作情况做...

2018-07-08 10:10:01 198

原创 Flask-Blueprint

Blueprint模块化随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过python的模块化管理,于是针对一个简单的flask程序进行模块化处理举例来说:我们有一个博客程序,前台界面需要的路由为:首页,列表,详情等页面源程序app.py文件:from flask import Flaskapp=Flask(__name__)@app.route('/')def ...

2018-07-08 10:09:43 275

原创 Flask-数据库基本操作

数据库基本操作在Flask-SQLAlchemy中,插入、修改、删除操作,均由数据库会话管理。会话用 db.session 表示。在准备把数据写入数据库前,要先将数据添加到会话中然后调用 commit() 方法提交会话。在 Flask-SQLAlchemy 中,查询操作是通过 query 对象操作数据。最基本的查询是返回表中所有数据,可以通过过滤器进行更精确的数据库查询。在视图函数中定义模型类fr...

2018-07-08 10:09:15 1464

原创 Flask-ORM

ORMORM 全拼Object-Relation Mapping.中文意为 对象-关系映射.主要实现模型对象到关系数据库数据的映射.比如:把数据库表中每条记录映射为一个模型对象ORM图解优点 :只需要面向对象编程, 不需要面向数据库编写代码.对数据库的操作都转化成对类属性和方法的操作.不用编写各种数据库的sql语句.实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.不在关注用的是mys...

2018-07-08 10:08:59 499

原创 Flask-CSRF

CSRFCSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题:个人隐私泄露以及财产安全。CSRF攻击示意图客户端访问服务器时没有同服务器做安全验证防止 CSRF 攻击步骤在客户端向后端请求界面数据的时候,后端会往响...

2018-07-08 10:08:35 116

原创 Flask-web表单

Web表单Web 表单是 Web 应用程序的基本功能。它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。在Flask中,为了处理web表单,我们可以使用 Flask-WTF 扩展,它封装了 WTForms,并且它有验证表单数据的功能WTForms支持的HTML标准字段字段对象说...

2018-07-07 08:43:40 384

原创 Flask-模板中特有的变量和函数

模板中特有的变量和函数你可以在自己的模板中访问一些 Flask 默认内置的函数和对象config你可以从模板中直接访问Flask当前的config对象:{{config.SQLALCHEMY_DATABASE_URI}}sqlite:///database.dbrequest就是flask中代表当前请求的request对象:{{request.url}}http://127.0.0.1se...

2018-07-07 08:42:03 160

原创 Flask-模板代码复用

宏对宏(macro)的理解:把它看作 Jinja2 中的一个函数,它会返回一个模板或者 HTML 字符串为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复使用定义宏{% macro input(name,value='',type='text') %} <input type=...

2018-07-07 08:39:08 481

原创 Flask-模板

Jinja2模板引擎简介模板在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的...

2018-07-07 08:28:57 258

原创 Flask-Script 扩展

Flask-Script 扩展通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过:python hello.py runserver -host ip地址以上代码告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在的计算机发起的连接,即localhost连...

2018-07-07 08:25:57 151

原创 Flask-上下文

上下文上下文:相当于一个容器,保存了 Flask 程序运行过程中的一些信息。Flask中有两种上下文,请求上下文和应用上下文请求上下文(request context)思考:在视图函数中,如何取到当前请求的相关数据?比如:请求地址,请求方式,cookie等等在 flask 中,可以直接在视图函数中使用 request 这个对象进行获取相关数据,而 request 就是请求上下文的对象,保存了当前本...

2018-07-07 08:25:10 362

原创 Flask-Session

Session对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息在服务器端进行状态保持的方案就是SessionSession依赖于Cookiesession数据的获取session:请求上下文对象,用于处理http请求中的一些数据内容@app.route('/index1')def index1(): session['username']...

2018-07-07 08:24:41 285

原创 Flask-Cookie

CookieCookie:指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地的数据(通常经过加密)。复数形式Cookies。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Co...

2018-07-07 08:24:02 104

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