02 2023 档案
摘要:import socket from threading import Thread import time def html(conn): time_tag = str(time.time()) print(time_tag) with open('test1.html', 'r', encodi
阅读全文
摘要:数据库增 insert into 表(字段...) values (值...);删 清空表 delete from 表; 会清空表,但是不会清空自增字段的offset(偏移量)值 删除某一条数据 delete from 表 where 条件;改 update 表 set 字段=值 where 条件;
阅读全文
摘要:池 在程序开始的时候,还没提交任务先创建几个线程或者进程 放在一个池子里,就是池为什么要用池 如果先开好线程/进程,那么有任务之后就可以直接使用这个池中的数据了 并且开好的线程或者进程会一直存在池中,可以被多个任务反复利用 这样极大的减少了开启/关闭/调度线程/进程的时间 池中的线程/进程个数控制了
阅读全文
摘要:协程 gevent 第三方模块 能处理一些基础网络操作 asynio 内置模块 底层协程模块 aiohttp模块 并发的爬虫 flask轻量级web框架/sanic异步的轻量级的web框架 async await 是操作系统不可见的 本质是一条线程 多个任务在一条线程上来回切换,来规避IO操作,就达
阅读全文
摘要:进程: 进行中的程序就是一个进程 占用资源,需要操作系统调度 pid:能够唯一标识给一个进程 计算机中最小的资源分配单位并发 多个程序同时执行:只有一个cpu,多个程序轮流在一个cpu上执行 宏观上:多个程序在同时执行 微观上:多个程序轮流在一个cpu上执行 本质还是串行并行 多个程序同时执行,并且
阅读全文
摘要:进程的三状态图 就绪 运行 阻塞进程的调度算法 给所有的进程分配资源或者分配cpu使用权的一种方法 短作业优先 先来先服务 多级反馈算法 多个任务队列,优先级从高到低 新来的任务总是优先级最高的 每一个新任务几乎会立即获得一个时间片时间 执行完一个时间片之后就会降到下一级队列中 总是优先级高的任务都
阅读全文
摘要:线程和进程概念 进程:数据隔离,资源分配的最小单位,可以利用多核,操作系统调度,开启关闭切换时间消耗大 multiprocessing 如何开启进程 start join 进程有数据不安全问题Lock 进程之间可以通信ipc 队列(安全) 管道(不安全) 第三方工具 进程之间可以通过Manager类
阅读全文
摘要:服务端: import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.bind(("127.0.0.1", 8080)) while True: msg, addr = sk.recvfrom(1024) print(msg.decode(
阅读全文
摘要:粘包现象 只出现在tcp协议中 多条消息之间没有边界,并且还有一大堆优化算法 发送端:两条消息很短并且发送的间隔很短 接收端:接收消息不及时 解决粘包问题的本质:设置边界计算即将要发送的数据的长度通过struct模块把长度转换成固定的4个字节发送4个字节的长度接受4个字节再使用struct.unpa
阅读全文
摘要:服务端 : import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen() conn, addr = sk.accept() conn.send(b"hello") msg = conn.recv(1024) p
阅读全文
摘要:""" 七层协议 应用层 表示层 会话层 合并为osi五层协议 python 传输层 port udp tcp 网络层 ipv4/ipv6 路由器 数据链路层 mac arp协议 网卡 交换机 物理层 tcp和udp tcp - 线下缓存高清电影/远程控制/发邮件 需要先建立连接,然后才能通信 占用
阅读全文
摘要:""" 两个装饰器 @classmethod 把一个对象绑定的方法,修改成为一个类方法 1.在方法中仍然可以引用类中的静态变量 2.可以不用实例化对象,就直接使用类名在外部调用这个方法 什么时候用? 1.定义了一个方法,默认传参self,但这个self没有被使用 2.并且你在这个方法里用到了当前的类
阅读全文
摘要:""" callable(对象) 对象() 能不能运行就是callable判断的事 __call__ 对象() 调用这个类中的__call__方法 """ class A: def __call__(self, *args, **kwargs): print("*************") obj
阅读全文
摘要:""" """ class Animal(object): def __init__(self,name,food): self.name = name self.food = food self.blood = 100 self.waise = 100 def eat(self): print(f
阅读全文
摘要:Celery是Python开发的简单、灵活可靠的、处理大量消息的分布式任务调度模块 安装: pip install celery # 安装celery库 pip install redis # celery依赖于redis pip install eventlet # Windows下需要安装 项目
阅读全文
摘要:为什么用log log是为了排错 log用来做数据分析1.用来记录用户行为 数据分析2.用来记录用户行为 操作审计3.排查代码中的错误 import logging #输出的内容是有等级的:调式、信息、警告、错误、批判性的 默认处理warning级别以上的所有信息 #无论你希望日志里打印哪些内容,都
阅读全文
摘要:正则表达式:匹配字符串能做什么: 1.检测输入的字符串是否合法 用户输入一个内容时,我们要提前做检测 能够提高程序的效率且减轻服务器压力 2.从一个大文件中找到所有符合规则的内容 能搞高效的从一大段文字中快速找到符合规则的内容正则规则: 所有的规则中的字符就可以刚好匹配到的字符串中的内容 字符组 描
阅读全文
摘要:import re ret = re.findall('\d+', '15548jhbsbcvjsbcv1548') print(ret) ret = re.search('\d+', '15548jhbsbcvjsbcv1548') print(ret) #变量 print(ret.group()
阅读全文
摘要:#获取一个对象的所有方法:dir() s = 'ewcewc' li = [1,2,3] print(dir(s)) print(dir(li)) print('__iter__' in dir(s)) #潘多是不是可迭代对象,内部含有__iter__方法,就是可迭代对象 #内部含有__iter__
阅读全文
摘要:#生成器函数 def func(): print('abc') yield 333 yield 444 ret = func() print(next(ret)) print(next(ret)) #一个next对应一个yield #return:函数中只存在一个return结束函数,并且给函数执行
阅读全文
摘要:列表推导式 li = [i for i in range(1, 100)] 示例,将含有两个e的人名留下 names = [['tom','biuli','jeffeson','annif','eedf'], ['alice','defe','kjh']] print([name for i in
阅读全文
摘要:class Book(models.Model): """ 列名 """ class Meta: db_table = 'book' name = models.CharField(verbose_name="名字", max_length=32) sort = models.IntegerFiel
阅读全文