08 2018 档案

摘要:web服务本质 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言。不是 阅读全文
posted @ 2018-08-30 19:00 chenyibai 阅读(369) 评论(0) 推荐(0)
摘要:在一个池子里,放固定数量的线程,这些线程等待任务,一旦有任务来,就有线程自发的去执行任务。 from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor concurrent.futures 这个模块是异步调用的机制 concurrent.futures 提交任务都是用submit for + submit 多个任务的提... 阅读全文
posted @ 2018-08-27 17:44 chenyibai 阅读(222) 评论(0) 推荐(0)
摘要:线程被称作轻量级的进程。 GIL:全局解释锁(只有Cpython解释器才有) 对于线程来说,因为有了GIL,所以没有真正的并行 计算机的执行单位以线程为单位。计算机的最小可执行是线程。 进程是资源分配的基本单位。线程是可执行的基本单位,是可被调度的基本单位。 线程不可以自己独立拥有资源。线程的执行, 阅读全文
posted @ 2018-08-23 17:17 chenyibai 阅读(332) 评论(0) 推荐(0)
摘要:进程池 进程池:一个池子,里边有固定数量的进程。这些进程一直处于待命状态,一旦有任务来,马上就有进程去处理。 因为在实际业务中,任务量是有多有少的,如果任务量特别的多,不可能要开对应那么多的进程数 开启那么多进程首先就需要消耗大量的时间让操作系统来为你管理它。其次还需要消耗大量时间让 cpu帮你调度它。 进程池还会帮程序员去管理池中的进程。 from multiprocessing i... 阅读全文
posted @ 2018-08-22 17:47 chenyibai 阅读(364) 评论(0) 推荐(0)
摘要:单进程管道管道是不安全的。 管道是用于多进程之间通信的一种方式。 如果在单进程中使用管道,那么就是con1收数据,就是con2发数据。 如果是con1发数据,就是con2收数据 from multiprocessing import Pipe con1,con2 = Pipe() con1.send(... 阅读全文
posted @ 2018-08-22 17:41 chenyibai 阅读(291) 评论(0) 推荐(0)
摘要:栈:先进后出(First In Last Out 简称 FILO)队列: 先进先出(First In First Out 简称 FIFO)from multiprocessing import Queueq = Queue(num)num : 队列的最大长度q.get() # 阻塞等待获取数据,如果有数据直接获取,如果没有数据,阻塞等待q.put() # 阻塞,如果可以继续往队列中放数据,就直... 阅读全文
posted @ 2018-08-22 17:38 chenyibai 阅读(225) 评论(0) 推荐(0)
摘要:锁 信号量 事件机制 阅读全文
posted @ 2018-08-21 15:36 chenyibai 阅读(296) 评论(0) 推荐(0)
摘要:开启子进程的方式:os.getpid()获取的是当前进程自己的pidos.getppid()获取的是当前进程的父进程的pid from multiprocessing import Process import os import time def func(n): time.sleep(1) print("这里是儿子%s进程,儿子自己的pid是%s,儿子的父亲的pid是%s" ... 阅读全文
posted @ 2018-08-20 16:48 chenyibai 阅读(248) 评论(0) 推荐(0)
摘要:什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的 阅读全文
posted @ 2018-08-20 16:41 chenyibai 阅读(199) 评论(0) 推荐(0)
摘要:from functools import reduce ret = reduce(lambda x,y: x+y, [1.5, 2, 3]) print(ret) ret2 = reduce(lambda x, y: x+y, [1,2,3], 9) print(ret2) ret3 = reduce(lambda x,y: x+y, [1, 2, 3], 7) print(ret3) ... 阅读全文
posted @ 2018-08-17 07:45 chenyibai 阅读(195) 评论(0) 推荐(0)
摘要:# struct.pack(type, num)# type:是num的类型# num :是一个数字# r = struct.pack# 把一个数字打包成一个四字节的bytes## struct.unpack(type, r)# 功能:解包,把r解成原数字,结果是一个元组,原数字在元组的下标位0的位置 import struct a = 2100 b = 2 c = 21 d = 210 s... 阅读全文
posted @ 2018-08-15 15:03 chenyibai 阅读(229) 评论(0) 推荐(0)
摘要:什么是黏包? 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包。 tcp黏包 UDP黏包 注意:只有TCP有粘包现象,UDP永远不会粘包 黏包成因 TCP协议中的数据传递 tcp协议的拆包机制: 当发送端缓冲区的长度大于网卡的M 阅读全文
posted @ 2018-08-14 17:57 chenyibai 阅读(228) 评论(0) 推荐(0)
摘要:UDP协议的通信优势: 允许一个服务器同时和多个客户端通信,TCP不行 一个服务器同时与多个客户聊天 署名聊天 pycharm输出带颜色: \033[字体颜色;背景颜色m 数据 \033[0m 结果: 阅读全文
posted @ 2018-08-13 15:37 chenyibai 阅读(237) 评论(0) 推荐(0)
摘要:1 网络基础相关的知识 架构: 1. C / S架构 : client客户端 和 server服务器端 优势 : 能充分发挥PC机的性能 2. B / S架构 : browser浏览器 和 server服务器 隶属于C/S架构 B / S架构 统一了应用的接口. 通信: 1. 同一台电脑上两个py程 阅读全文
posted @ 2018-08-10 16:03 chenyibai 阅读(266) 评论(0) 推荐(0)
摘要:在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.d 阅读全文
posted @ 2018-08-09 21:40 chenyibai 阅读(192) 评论(0) 推荐(0)
摘要:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误(逻辑错误) 阅读全文
posted @ 2018-08-09 21:39 chenyibai 阅读(281) 评论(0) 推荐(0)
摘要:Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要dige 阅读全文
posted @ 2018-08-09 13:28 chenyibai 阅读(218) 评论(0) 推荐(0)
摘要:该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。 创建文件 来看一个好多软件的常见文档格式如下: 如果想用python生成一个这样的文档怎么做呢? 查找文件 增删改操作 阅读全文
posted @ 2018-08-09 13:28 chenyibai 阅读(207) 评论(0) 推荐(0)
摘要:函数式简单配置 默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),默认的日志格式为日志级别:Log 阅读全文
posted @ 2018-08-09 13:28 chenyibai 阅读(195) 评论(0) 推荐(0)
摘要:什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。 序列化的目的 1、以某种存储形式使自定义对象持久化; 2、将对象从一个地方传递到另一个地方。 3、使程序更具维护性 json json import json dic={"aaa":"bb","cc":"ddd"} str 阅读全文
posted @ 2018-08-08 17:10 chenyibai 阅读(209) 评论(0) 推荐(0)
摘要:import os os模块是与操作系统交互的一个接口 注意:os.stat('path/filename') 获取文件/目录信息 的结构说明 阅读全文
posted @ 2018-08-08 15:35 chenyibai 阅读(284) 评论(0) 推荐(0)
摘要:import time 阅读全文
posted @ 2018-08-08 15:18 chenyibai 阅读(286) 评论(0) 推荐(0)
摘要:import random随机 : 在某个范围内取到每一个值的概率是相同的 0-1之内的随机小数 import random print(random.random()) 任意范围内的随机小数 import random print(random.uniform(1,5)) 随机整数 import random print(random.randint(1,2)) #[1,2]包含... 阅读全文
posted @ 2018-08-07 21:28 chenyibai 阅读(183) 评论(0) 推荐(0)
摘要:2.search 5.subn 6.split 7.comple #时间效率 8.finditer #空间效率 分组 split 分组 search 分组练习 阅读全文
posted @ 2018-08-07 17:00 chenyibai 阅读(304) 评论(0) 推荐(0)
摘要:谈到正则,我们首先需要了解一个在线测试工具http://tool.chinaz.com/regex/ 什么是正则表达式? 正则就是一种匹配字符串的规则 例如:判断input的一个数是不是QQ号码,需要知道QQ号码是5位数以上,13位数以下,不是0开头等信息 或者是判断输入的是不是身份证号码,需要知道 阅读全文
posted @ 2018-08-06 16:25 chenyibai 阅读(222) 评论(0) 推荐(0)
摘要:什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到 阅读全文
posted @ 2018-08-03 20:25 chenyibai 阅读(341) 评论(0) 推荐(0)
摘要:析构方法:_ _del_ _ 释放一个空间之前执行. 注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。 文件处理 # 一个类 # 对象的属性 : 阅读全文
posted @ 2018-08-03 08:24 chenyibai 阅读(240) 评论(0) 推荐(0)
摘要:正常情况下打印a是经过了pycharm优化处理过的,看不到两端的 " " 所以: 这样就可以显示原有的a 由上我们可以看出个问题,起初说print是依赖于_ _str_ _,而现在_ _repr_ _也可以执行,所以,我们就要探讨一下他们的联系了. 结论:_ _repr_ _对应的是repr(obj 阅读全文
posted @ 2018-08-01 21:04 chenyibai 阅读(2037) 评论(2) 推荐(4)