08 2019 档案
摘要:数据类型与完整性约束 1. 创建表 # 完整创建表语法 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); # 注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选、非必须,宽
阅读全文
摘要:1. 数据库相关概念 数据库管理系统 :Database Management System(DBMS):是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。 记录:每一组数据组成一条记录 表:文件,用来存储多条记录 库:文件夹,用来组织文件/表(存储在data文件夹下) 数据库分类: 关
阅读全文
摘要:MySQL数据库Windows环境安装 MySQL 下载地址:https://dev.mysql.com/downloads 进入官网,点击DOWNLOADS 我们这里选择5.6.45版本下载,下载zip。 点击download进入: 1.下载完成后,解压mysql压缩包,自定义目录(不能有中文和特
阅读全文
摘要:socketserver模块 socketserver模块实现一个服务端与多个客户端通信。是在socket的基础上进行了一层封装,底层还是调用的socket。 socketserver干了两件事: 1、一个是循环建立链接的部分,每个客户链接都可以连接成功 2、一个通讯循环的部分,就是每个客户端链接成
阅读全文
摘要:1. 线程队列 1.1 先进先出(FIFO) import queue q = queue.Queue(3) q.put('a') q.put('b') q.put('c') print(q.qsize()) # 队列大小 print(q.get()) print(q.get()) print(q.
阅读全文
摘要:1. 阻塞与非阻塞 执行的角度: 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到io操作)。函数只有在得到结果之后才会将阻塞的线程激活。 非阻塞:程序没有遇到IO阻塞,或者程序遇到IO,通过某种方式,让CPU强行运行程序。 2. 同步与异步 发布的角度: 同步调用:在发出一
阅读全文
摘要:1. 死锁与递归锁 死锁:两个或者两个以上的进程或者线程在执行过程中,因争夺资源而造成的一种等待现象,称为死锁现象。 递归锁可以解决死锁现象。 递归锁有一个计数的功能,原数字为0,锁一次计数+1,释放一次,计数-1;只要数字不为0,其他线程就不能枪锁。 from threading import R
阅读全文
摘要:多线程 1. 线程 开启一个进程,操作系统会开辟一个进程空间,将进程的数据资源全部复制一份,然后cpu使线程执行代码。 进程负责开辟空间、加载数据资源,线程负责执行。 2. 线程vs进程 1. 开启进程的开销大; 开启进程的速度满,线程比进程快10—100倍; 3. 同一进程的线程之间可共享数据
阅读全文
摘要:1. 互斥锁 当多个进程抢占同一数据时,将数据加锁,使进程按串行的方式去获取数据,先到先得,保证了公平、数据的安全。 lock.acquire() # 加锁 lock.release() # 释放 死锁:连续lock.acquice() 多次,会阻塞进程。 # 模拟三个用户使用同一个
阅读全文
摘要:多进程 1. 进程创建的两种方式 multiprocessing # 第一种方式 from multiprocessing import Process import time def task(name): print(f'{name} is running') time.sleep(2) pri
阅读全文
摘要:1. 操作系统 管理、控制、协调计算机硬件与软件资源的计算机程序。 1.1 作用 将一些对硬件操作的复杂、丑陋的接口,变成简单、清晰的接口。 2. 将多个进程对硬件资源(cpu)的竞态请求变得有序化、合理化。 1.2 操作系统的发展 linux或windows的源代码有五百万行数量级。 计算
阅读全文
摘要:1. recv 工作原理 1.能够接收来自socket缓冲区的字节数据; 2.当缓冲区没有数据可以读取时,recv会一直处于阻塞状态,知道缓冲区至少有一个字节数据可取,或者客户端关闭; 3.关闭远程端并读取所有数据后,再recv会返回字符串。 2.升级版解决粘包问题 应用层自定义协议FTP(文件传输
阅读全文
摘要:1. 单对单循环通信 send() 和recv()不是一一对应的。 # 服务端 server.py import socket phone = socket.socket() phone.bind = (('127.0.0.1', 8888)) # 绑定本地回环地址/端口号 phone.list
阅读全文
摘要:Socket - 套接字 应用层与TCP/IP协议族通信层(或传输层)之间的抽象层,是一组接口()接收数据;当接口接收数据之后,交由操作系统; 如果数据与操作系统直接交互,会非常麻烦,而socket会将数据进行高度封装/简化在传给操作系统。 socket在python中是一个模块。 # 导入套接字
阅读全文
摘要:网络协议 1. C/S、B/S 架构 C:client端 B:browse浏览器 S:server 端 1.1 C/S 架构: 基于客户端与服务端之间的通信。 如QQ、抖音等。 优点:满足个性化设置,响应速度快。 缺点:开发成本、维护成本高,占用空间,用户固定。 1.2 B/S 架构:
阅读全文
摘要:异常处理 1. 错误分类 # 1.语法错误: SyntaxError:invalid syntax if 2>3 pass # 2.逻辑错误: 用异常处理 2. 异常 代码出现错误时,代码中断。 # python中常用异常种类: ''' AttributeError 试图访问一个对象没有的树形,比如
阅读全文
摘要:1. 类的反射 程序对自己内部代码的一种自省方式。 定义:通过字符串取操作对象的方式。 可应用于实例对象、类、本模块、其他模块。 带有点 . 的方式都可用反射方法。 四种方法: 1. hasattr(object, name) # 判断、检测 2. getattr(object, name) # 获
阅读全文
摘要:1. 类的私有成员 -- __ 当你遇到重要的数据,功能,(只允许本类使用的一些方法,数据)将其设置成私有成员. 1.1 类的私有静态属性 __name = "meet" # 加 __ #只能在类的内部进行访问、调用,在类的外部以及派生类不能调用。 1.2 类的私有方法 class A: def _
阅读全文
摘要:1. 封装、多态 封装:将代码、数据放入一个容器空间中,并且可以使用. 多态:一个事物可以呈现多种形态。 python默认支持多态,一个变量可以指向多种数据类型。 2. 鸭子类型--Duck typing python崇尚鸭子类型(编码思路)。 "鸭子类型"像多态一样工作,但是没有继承。 看起来像“
阅读全文
摘要:继承--inheritance 面向对象的的三大特征:继承、封装、多态。 1. 面向对象继承: 如果B类继承A类,B类就称为子类、派生类,A类就称为父类、超类、基类。 继承的优点: 1. 减少重复代码; 2. 增加了类的耦合性; 3. 使代码清晰、流畅。 2. 单继承 2.1 类名执行父类的属性
阅读全文
摘要:1. 从空间角度研究类 1.1 添加对象的属性: 在类的__init__中可以添加; 在类的方法中也可以添加; 在类的内部也可以添加。 1.2 添加类的属性: 在类的方法中可以添加,传参; 在类的外部也可添加。 1.3 类与对象的关系: 类名(): 实例化对象,会在对象空间生成一个类对象指针,指向类
阅读全文
摘要:1. 面向对象初步认识 面向过程编程VS函数编程:减少重复代码,增强了可读性 面向对象编程VS函数编程优点: ①对相似功能的函数,同一个业务的函数进行归类、分类; 类:具有相同属性和功能的一类事物 对象:类的具体体现(具体到一个事物),对象间是不同的。 ②要站在上帝的角度构建代码,类就是一个公共的模
阅读全文
摘要:规范化目录 将代码进行分类的优点:加载快、可读性高、查询修改简单。 1. 划归固定的路径: 统一相同的路径,也就是统一相同的变量,代码中如果需要这个路径时,直接引用即可,可以多次引用。 2. 划分文件 2.1 seetings 配置文件 setting.py文件:存放静态路径、变量、数据库的链接
阅读全文

浙公网安备 33010602011771号