Python全栈开发 知识梳理大纲
文章平均质量分 86
从基础语法开始再到面向对象、socket网络编程、web前端、服务器框架、机器算法、爬虫等系统知识梳理大纲
番茄西瓜汤
这个作者很懒,什么都没留下…
展开
-
Python 系统知识大纲
Python基础知识大纲标签(空格分隔): Python Python基础知识 基础常识【Python基本目录及规范】常用内置模块【hashlib加密模块】 【ConfigParser配置文件模块】 【Logging日志-基础功能】 【Logging日志-高级功能】...原创 2018-05-28 16:21:56 · 554 阅读 · 0 评论 -
python 协程的基本概念和使用方法
协程介绍是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是协程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行)单线程内开启协程,一旦遇到io,就会从应用程序级别(而非操作系统)控制切换,以此来提升效率(!!...原创 2018-06-20 21:06:11 · 1306 阅读 · 0 评论 -
python 基于 gevent 完成C/S 服务器协程多并发案例
gevent 解决单线程内并发 如果再配合多线程,那么可以优化更进一步优化扛住高并发服务器from gevent import monkey, spawn; monkey.patch_all() # 使用gevent必须 调用 import socket ...原创 2018-06-20 21:04:46 · 901 阅读 · 1 评论 -
python 进程池、线程池 与异步调用、回调机制
信号量 队列是数据传递、信号量是类似于锁(共享内存) Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器-1; 调用release() 时内置计数器+1; 计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。from threading import Threadfrom thre...原创 2018-06-20 09:25:44 · 9411 阅读 · 2 评论 -
python多线程 信号量、Event事件、定时器、队列
守信号量 Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器-1; 调用release() 时内置计数器+1; 计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。from threading import Threadfrom threading import Semaphore # ...原创 2018-06-19 15:52:12 · 1561 阅读 · 0 评论 -
python多线程与多进程的选择,以及优劣势
多线程用于IO密集型,如socket,爬虫,web 多进程用于计算密集型,如金融分析原创 2018-06-18 22:47:25 · 2661 阅读 · 1 评论 -
python守护线程、互斥锁、递归锁的基本概念与使用
无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁需要强调的是:运行完毕并非终止运行守护线程 !!! 如果子线程开启了守护模式,那么主线程运行完后立即干死子线程、而主线程要等未加守护的线程运行完毕from threading import Threadimport timedef foo(): print(123) time.sleep(...原创 2018-06-18 19:29:41 · 291 阅读 · 0 评论 -
python守护线程、互斥锁的基本概念与使用
无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁需要强调的是:运行完毕并非终止运行守护线程 !!! 如果子线程开启了守护模式,那么主线程运行完后立即干死子线程、而主线程要等未加守护的线程运行完毕from threading import Threadimport timedef foo(): print(123) time.sleep(...原创 2018-06-18 19:29:38 · 207 阅读 · 0 评论 -
python 线程的两种开启方法,及线常用方法
方法1 先输出主进程,再输出子进程是因为 p.start() 只是给系统发送就绪信号有延时,所以主进程都执行完了,可能子进程才到他开始运行from multiprocessing import Process # 创建进程的模块def task(name): print(name)if __name__ == '__main__': # 开启子进...原创 2018-06-18 09:54:24 · 15958 阅读 · 0 评论 -
python 生产者与消费者模型
用途 程序中有两类 一类负责生产数据(生产者) 一类负责处理数据(消费者) 用于平衡两者的速度差 与 程序揭开耦合生产者<——>列队<——>消费者# 原理,生产者将生产的对象丢到队列里边,消费者从队列里边取出数据import timefrom multiprocessing import Queuefrom multiproce...原创 2018-06-16 13:38:03 · 545 阅读 · 0 评论 -
守护进程、互斥锁、列队的使用案例
守护进程 如果子进程开启了守护模式,那么主进程运行完后立即干死子进程from multiprocessing import Processimport timedef foo(): print(123) time.sleep(1) print("end123")def bar(): print(456) time.sleep(3)...原创 2018-06-16 10:33:49 · 300 阅读 · 0 评论 -
python 开启进程的两种方法、以及查询子进程与父进程
方法1 先输出主进程,再输出子进程是因为 p.start() 只是给系统发送就绪信号有延时,所以主进程都执行完了,可能子进程才到他开始运行from multiprocessing import Process # 创建进程的模块def task(name): print(name)if __name__ == '__main__': # 开启子进程 ...原创 2018-06-15 15:06:51 · 11166 阅读 · 0 评论 -
C/S 服务器与客户端连接三次握手与三次挥手原理
前言TCP(Transmission Control Protocol)网络传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,数据传输前建立连接的工作要经过三次握手,数据传输后断开连接的工作要经过四次挥手。工作过程 TCP标志位: TCP共有6个标志位,分别是: SYN(synchronous),建立联机。 ACK(acknowledgement),确认。 PS...原创 2018-06-14 15:53:28 · 2085 阅读 · 0 评论 -
Python中 异常处理 、捕捉和常用方法案例
1:把错误处理和真正的工作分开来 2:代码更易组织,更清晰,复杂的工作任务更容易实现; 3:毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了;异常的种类 常见异常AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打开文件ImportError 无法...原创 2018-06-06 10:15:49 · 737 阅读 · 0 评论 -
UDP网络传输协议、UDP与TCP的区别与基础案例
区别通常用于查询功能,效率高UDP协议即便发送 ’‘ 空 ,也会相互发送交互, 因为会发送 端口ip信息UDP不会粘包, recvfrom() 和 sendto() 必须1对1服务端from socket import * # 写socket的时候可以直接导入* 否则可能大量的socket. 加大代码量soc = socket(AF_INET, SOC...原创 2018-06-05 17:43:47 · 147 阅读 · 0 评论 -
Python C/S 交互上传下载传输文件基础案例,面向过程版
基础版,非对象版,超Low服务端import socketimport jsonimport structimport osshare_dir = r'C:/server/share' # 下载目录全局soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)soc.setsockopt(socket.SOL...原创 2018-06-05 16:55:02 · 492 阅读 · 0 评论 -
TCP解决粘包问题,最基础的方法解决TCP粘包,学会用报头包装信息
简单案例:非线程,基础循环版<引子> 远程执行ssh命令模块客户# windows 的测试命令# dir:查看某一个文件夹下的子文件名与子文件夹名# tasklist:查看运行的进程# ipconfig:查看本顶网卡的ip信息import subprocess# shell=True cmd把字符串转成程序命令obj = s原创 2018-06-04 13:19:45 · 455 阅读 · 0 评论 -
send与recv 的基础概念、两者之间的工作原理、粘包产生原理
https://www.luffycity.com/python-book/assets/6.5%20buffer%20.png1.不管是recv 还是 send 不是直接接收对方数据,都是对自己的操作系统内存操作, 不是一个send对应一个recv2. recv:wait data 耗时非常长,需要等待 copy data send: copy d...原创 2018-06-04 12:50:41 · 3200 阅读 · 0 评论 -
Python基础 C/S 客户端远程执行 服务端 ssh命令
最基础版 服务端import socket# 参数1 套接字类型INET 参数2 数据流类型 TCP协议phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 获取对象# 为了防止端口被占用,可以使用如下方法,回收端口sok.setsockopt(socket.SOL_SOCKET, ...原创 2018-06-04 11:51:27 · 345 阅读 · 0 评论 -
socket 基础之 客户端与服务端的通讯案例、与基础原理
@ property 去括号直接返回值 把需要装饰的函数装饰上@ property后,调用函数不需要加()就能直接返回值# 例子class People: def __init__(self, weight, height): # 传入 长度 和宽度 self.weight=weight self.height=height ...原创 2018-06-03 00:48:21 · 276 阅读 · 0 评论 -
TCP/IP五层协议 基础概念与交互流程图
【物理层】物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0将信息全部拆分为01的组合【数据链路层】数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思数据链路层的功能:定义了电信号的分组方式head包含:(固定18个字节) 发送者/源地址,6个字节 接收者/目标地址,6个字节 数...原创 2018-06-02 15:44:47 · 3363 阅读 · 0 评论 -
python中常用类的内置方法、不断更新中...
取运行目录父级import os# 取出父目录file = os.path.abspath(os.path.dirname(os.getcwd())) + '\config\conf_file.ini'如果判断文件内容是否为空import osif os.path.getsize(user_file): # 有内容,能获取到文件大小,真esle: ...原创 2018-05-30 21:40:31 · 243 阅读 · 0 评论 -
python 类中绑定方法与非绑定方法的原理和基础案例
绑定给类的方法(classmethod)#set.py # 一个py文件内储存了key值key = '123'#test.py # 运行pyimport setclass My: def __init__(self,key): self.key = key @classmethod # 把内部方法绑定给 类,该方法默认参数是绑定的类 d...原创 2018-05-30 21:37:04 · 513 阅读 · 0 评论 -
多态 作用与实战 和抽象类搭配使用
序言 ‘ 其实和抽象类的概念配合使用 ’1.增加了程序的灵活性以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)2.增加了程序额可扩展性通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用 多态例子(简易版)peo = People()dog = Dog()pi...原创 2018-05-30 21:02:06 · 236 阅读 · 0 评论 -
抽象类 abc模块 统一命名,加强规范与拓展性
注意事项从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。导入abc 模块作用:子类必须定义装饰的功能!统一不同类的相同功能叫同一个名字,方便使用者调用import abc #利用abc模块实现抽象类class All(metaclass=abc.ABCMeta): @abc.abstractmetho...原创 2018-05-30 20:36:02 · 1255 阅读 · 0 评论 -
封装 常用方法 @ property 的最基础案例
@ property把需要装饰的函数装饰上@ property后,调用函数不需要加()就能直接返回值# 例子class People: def __init__(self, weight, height): # 传入 长度 和宽度 self.weight=weight self.height=height @property ...原创 2018-05-30 12:03:58 · 178 阅读 · 0 评论 -
常用文件操作方法,更新中...
取运行目录父级import os# 取出父目录file = os.path.abspath(os.path.dirname(os.getcwd())) + '\config\conf_file.ini'如果判断文件内容是否为空import osif os.path.getsize(user_file): # 有内容,能获取到文件大小,真esle: # 没...原创 2018-05-30 11:20:45 · 233 阅读 · 0 评论 -
元类的基础使用 案例 注意事项
元类 控制类的实例化原理:利用元类拦截 类实例化的过程,加以控制# 元类class Meta(type): # 继承type,默认类是继承type def __init__(self, class_name, class_bass, class_dic): # 原封不动取出来还会去,中间加上自己的判断 if not class_name.istitle()...原创 2018-05-29 14:45:34 · 131 阅读 · 0 评论 -
json 模块使用方法
注意事项json文件即使为空,内部也要有一个空的{} 否则读入就会报错dump 和 dumps 的区别dump 转成str格式并储存到文件 dumps 仅转成str格式并不能保存到文件读取json内容import json # 导入json模块# 取数据with open(file, 'r', encoding = 'utf-8') as f: ...原创 2018-05-29 13:26:36 · 2314 阅读 · 0 评论 -
Python读写配置文档
Python读写配置文档读配置import configparser # 导入配置模块conf = configparser.ConfigParser() # 先创建一个conf对象conf.read(file) # 再读取配置文件conf['节名称']['配置项名'] # 就能返回要查找的值conf.options("节名称") # 返回该节点下所有配置项...原创 2018-05-28 16:28:22 · 180 阅读 · 0 评论 -
Python开发规范及文件命名
Python开发规范常用目录 目录名 作用 log 日志目录 conf 配置目录 core 核心代码 libs/modules 第三方库 docs 文档库 README 帮助文档 bin 启动入口,存放可执行文件 tests 存放测试代码常用的文件命名...原创 2018-05-28 16:24:42 · 18958 阅读 · 1 评论 -
Logging日志-高级
Logging日志-高级4大内置功能板块[x] logger 用户直接调用[x] handler 处理logger日志揭露发送到合适的目的输出[x] filter 对输出日志进行过滤输出[x] formatter 决定日志的记录格式实战例子import logging '''配置日志方案 把日志输出到屏幕和文件'''''...原创 2018-05-28 16:27:11 · 228 阅读 · 0 评论 -
Logging日志模块
Logging日志模块输出级别 级别名 作用 1—-DEBUG 调试模式 2—-INFO 记录模式 3—-WARNING 挖掘潜在问题模式 4—-ERROR 出错模式 5—-CRITICAL 严重出错如何写到文件 【日志级别用大写】![x] 简单基础版import logging...原创 2018-05-28 16:28:01 · 481 阅读 · 0 评论 -
hashlib加密模块
hashlib加密模块常用方法import hashlibmd5 = hashlib.md5() # 获取md5对象 ()!!!md5.update(password.encode('utf-8')) # 加密 切记要指定编码 encode('utf-8')print(md5.hexdigest()) # 用hexdigest()获取计算的md5值常用...原创 2018-05-28 16:23:26 · 831 阅读 · 0 评论