02 2020 档案
摘要:paramiko模块 通过ssh链接服务器并执行想要的命令,类似于XShell ansible(远程批量管理服务器)底层源码其实就是paramiko模块实现的 一、安装 二、使用 前提须知:paramiko模块即支持用户名密码的方式也支持公钥私钥的方式操作服务器 2.1 通过密码连接 2.2 通过私
阅读全文
摘要:分类筛选过滤器 二、分类筛选过滤器 三、 自定义区间删选过滤器 自定义filter类时的字段
阅读全文
摘要:分页过滤器 一、自定义分页器PageNumberPagination (常用) 总结: 1. 继承PageNumberPagination,重写属性字段,配置 pagination_class = CoursePageNumberPagination 使用url:http://127.0.0.1
阅读全文
摘要:排序和查询过滤器 过滤器的入口在GenericAPIView类中: filter_backends = api_settings.DEFAULT_FILTER_BACKENDS 一、序和查询过滤器使用 二、排序过滤器的使用 总结: 1. 要导入要排序过滤器的字段 2. 配置过滤器的类 3. 配置参数
阅读全文
摘要:DRF JWT 一、JWT JWT全称: json web token, 作用:将原始的数据json加密成字符串,通过后台将加密的字符串给前台存储(token) 格式:三段式,头.载荷.签名 , 头和载荷都是采用base34可逆加密,签名采用md5不可逆加密 头(基础信息,也可以为空):加密方式、公
阅读全文
摘要:认证组件、权限组件、频率组件 一、Django权限六张表 1.1、content_type表 ! content_type表作用: 作为两张表之间的关联第三张表 1. 应用一:权限表的权限是操作表的,所有在权限表中有一个content_type表的外键,标识改权限具有操作哪一张表的权限 2. 应用二
阅读全文
摘要:视图家族案例 一、models.py模型类 二、serializers自定义序列化类 三、路由匹配 四、视图类 五、UpdateAPIView局部修改密码 重写UpdateModelMixin类中update方法实现自定义返回数据
阅读全文
摘要:视图家族之mixins视图工具类与generics工具视图类 一、mixins视图工具类 作用: 提供了几种后端视图(对数据资源进行曾删改查)处理流程的实现,如果需要编写的视图属于这五种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量。 这五个扩展类需要搭配GenericAPIVie
阅读全文
摘要:视图家族之两个视图基类 一、APIView 是REST framework提供的所有视图的基类,继承自Django的 父类。 与`View`的不同之处在于: 传入到视图方法中的是REST framework的 对象,而不是Django的 对象,对request进行二次封装; 视图方法可以返回REST
阅读全文
摘要:视图家族之视图工具集viewsets 一、视图集ViewSet 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destory() 删除数据 ViewSet视图
阅读全文
摘要:十大接口 一、Response响应封装 1.1封装 1.2使用 二、ModelSerializer扩展 2.1连表查询 总结 1. 连表查询在modes.py中自定义的字段,一旦其中的逻辑出错,他对应的返回值就不会做出任何响应 2. 自定义连表深度,不需要反序列化,因为自定义插拔属性不参与反序列化
阅读全文
摘要:ORM表之间高级设计 一、表的继承 总结: 1. 自定义基表,主要是用于解决多个表出现重复的字段,可以自定义基表(参考auth.models.User表) 2. 首先需要自定义创建一个表,然后在写内部类 Meta 3. 在Meta内部类中必须设置属性abstract = True,基表既可以别普通类
阅读全文
摘要:响用模块 一、响用模块使用 在视图类中导入 模块,返回响应结果 二、二次封装Response Response类生成对象需要的参数,以及Response类的对象可以使用的属性 1. 参数:Response(data=响应的数据, status=响应的网络状态码, headers=想通过响应头再携带部
阅读全文
摘要:异常模块的使用 重写异常模块的目的是记录异常信息(日志记录) 一、异常模块的使用 二、异常源码分析 总结: 1. 在APIView的dispatch方法中,有一个try...except...异常,将代码运行的异常都交给异常处理模块进行处理: response = self.handle_excep
阅读全文
摘要:解析模块的使用 一、使用 服务器根据设置的请求头content type接收客户端对应的数据信息 二、源码分析 python 1.对数据进行二次解析 def dispatch(self, request, args, kwargs): """ is pretty much the same as D
阅读全文
摘要:渲染模板 根据用户请求的RUL向服务器要响应的数据类型,比如:json数据,xml数据,将这些数据向用户返回 一、渲染模板的使用 二、渲染模板的源码解析 python 1 对请求响应进行二次封装 def dispatch(self, request, args, kwargs): .... ....
阅读全文
摘要:request请求生命周期 一、request请求分析 1.1. request数据请求 总结: 1. drf中的request是在wsgi的request基础上进行再一次封装 2. 将wsgi的request作为drf的request的一个属性, 3. drf中的request对wsgi中的req
阅读全文
摘要:django restframework 一、安装 二、使用 在settings.py中注册: 三、模块 基于CBV完成满足RSSTful规范接口
阅读全文
摘要:并发编程小结 [TOC] 一、到底什么是线程?什么是进程? Python自己没有这玩意,Python中调用的操作系统的线程和进程。 二、Python多线程情况下: 计算密集型操作:效率低,Python内置的一个全局解释器锁,锁的作用就是保证同一时刻一个进程中只有一个线程可以被cpu调度,多线程无法利
阅读全文
摘要:大白话五种IO模型 [TOC] 一、I/O模型介绍 为了更好地了解I/O模型,我们需要事先回顾下: "同步、异步、阻塞、非阻塞" 同步(synchronous) I/O和异步(asynchronous) I/O,阻塞(blocking) I/O和非阻塞(non blocking)I/O分别是什么,到
阅读全文
摘要:Python程序中的协程操作 greenlet模块 [TOC] 一、安装模块 安装:pip3 install greenlet 二、greenlet实现状态切换 randy eat 1 randy play 1 randy eat 2 randy play 2 三、效率对比 单纯的切换(在没有io的
阅读全文
摘要:Python程序中的协程操作 gevent模块 一、安装 安装:pip3 install gevent 二、Gevent模块介绍 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet,它是以C扩展模块形式接入Python的轻量
阅读全文
摘要:协程基础 [TOC] 一、引言 之前我们学习了线程、进程的概念,了解了在操作系统中 进程是资源分配的最小单位 , 线程是CPU调度的最小单位 。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题, 都要消耗一定的时间来创建进程、创建线程、以及管理他
阅读全文
摘要:Python程序中的线程操作(线程池) concurrent模块 [TOC] 一、Python标准模块——concurrent.futures 官方文档:https://docs.python.org/dev/library/concurrent.futures.html 二、介绍 concurre
阅读全文
摘要:Python程序中的线程操作 线程队列 [TOC] 一、线程队列 queue队列:使用 ,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely
阅读全文
摘要:Python程序中的线程操作 锁 [TOC] 一、同步锁 1.1 多个线程抢占资源的情况 结果可能为: 99 1.1.1 对公共数据的操作 1.2 同步锁的引用 结果肯定为:0 1.3 互斥锁与join的区别 二、死锁与递归锁 进程也有死锁与递归锁,在进程那里忘记说了,放到这里一起说了。 所谓死锁:
阅读全文
摘要:GIL全局解释器锁 一、GIL全局解释器锁 Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。 Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。 虽然 Python 解释器中可以“运行”多个线程, 但在任意时刻只有一个线程在解释器中运行。 对Python虚拟机
阅读全文
摘要:内存中的线程 [TOC] 一、内存中的线程 " " 多个线程共享同一个进程的地址空间中的资源, 是对一台计算机上多个进程的模拟,有时也称线程为轻量级的进程。 而对一台计算机上多个进程,则共享物理内存、磁盘、打印机等其他物理资源。多线程的运行和多进程的运行类似,是CPU在多个线程之间的快速切换。 不同
阅读全文
摘要:Python程序中的进程操作 进程池(multiprocess.Pool) [TOC] 一、进程池 为什么要有进程池?进程池的概念。 在程序实际处理问题过程中, 忙时会有成千上万的任务需要被执行,闲时可能只有零星任务 。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创
阅读全文
摘要:操作系统的发展史 一、手工操作——穿孔卡片 1946年第一台计算机诞生 20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 " " " " 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针
阅读全文
摘要:网络编程小结 一、网络编程小结 二、网络架构及其演变过程 2.1 单机架构 不需要联网 2.2 CS架构 客户端直接和服务端交互 2.3 BS架构 客户端嫁接在浏览器上,浏览器和服务端交互 三、互联网和互联网的组成 3.1 教材版 1. 边缘部分:服务端和客户端 2. 核心部分:路由器/基站 3.2
阅读全文
摘要:Socket抽象层 [TOC] 一、Socket抽象层 我们知道两个进程如果需要进行通讯最基本的一个前提是能够唯一标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的IP地址可以唯一标
阅读全文
摘要:struct模块 把一个数字打包成固定长度的4字节 | Format | C Type | Python | Notes | | | | | | | | pad byte | no value | | | | | string of length 1 | | | | | integer | | |
阅读全文
摘要:互联网和互联网的组成 [TOC] 一、互联网的组成(教材版) " " 互联网的拓扑结构非常复杂 ,并且在地理位置上覆盖了全球,从工作方式上看,可以划分为两大块: 1. 边缘部分:这部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。 2. 核心部分:由大量网络和连接这
阅读全文
摘要:面向对象进阶实战之选课系统 一、项目地址 https://github.com/RandySun01/student_course_selected 二、作业要求 角色:学校、学员、课程、讲师 要求: 1. 创建北京、上海 2 所学校 2. 创建linux、python、go3个课程 ,linux\
阅读全文
摘要:面向对象高级小结 一、面向对象高级小结 1.1 isinstance,issubclass isinstance判断是否为类的实例化对象,会检测父类,而type不会检测父类 issubclass,判断是否为其子类 1.2 反射 1. hasattr:通过字符串判断是否类属性存在 2. getattr
阅读全文
摘要:实现文件上下文管理(\_\_enter\_\_和\_\_exit\_\_) 我们知道在操作文件对象的时候可以这么写 上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明\_\_enter__和\_\_exit\_\_方法 一、上下文管理协议 出现with语
阅读全文
摘要:\_\_module\_\_和\_\_class\_\_ [TOC] 一、\_\_module\_\_ \_\_module__ 表示当前操作的对象在那个模块 二、通过字符导入模块 三、\_\_class__ \_\_class__表示当前操作的对象的类是什么
阅读全文
摘要:实现迭代器(\_\_next\_\_和\_\_iter\_\_) [TOC] 一、简单示例 死循环 二、StopIteration异常版 加上StopIteration异常 True 1 2 3 4 三、模拟range 四、斐波那契数列
阅读全文
摘要:\_\_str\_\_和\_\_repr\_\_ [TOC] 一、\_\_str\_\_ 打印时触发 {'a': 1} obj和dic都是实例化的对象,但是obj打印的是内存地址,而dic打印的是有用的信息,很明显dic的打印是非常清楚 打印的时候自动触发,但是其实不需要print即可打印 rand
阅读全文
摘要:\_\_init\_\_和\_\_new\_\_ 一、\_\_new\_\_和\_\_init\_\_ 曾经我幼稚的以为认识了python的\_\_init\_\_()方法就相当于认识了类构造器,结果,\_\_new\_\_()方法突然出现在我眼前,让我突然认识到原来\_\_new\_\_才是老大。
阅读全文
摘要:_\_call\_\_ 一、\_\_call\_\_ 对象后面加括号时,触发执行。 注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于\ _\_call\_\_ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() 先执行父类的\_\_call\_\_,然后在执行自己
阅读全文
摘要:\_\_doc\_\_ 注释信息 一、__doc__ 返回类的注释信息 我是描述信息 该属性无法被继承 None
阅读全文
摘要:\_\_slots\_\_ 一、什么是\_\_slots__ \_\_slots__是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立的)
阅读全文
摘要:\_\_del\_\_ 一、\_\_del__ \_\_del__也称之为析构方法 \_\_del__会在对象被删除之前自动触发 del会在对象被删除之前自动触发 主 二、总结 \_\_del__: 会在del对象之前触发,比如关闭文件
阅读全文
摘要:格式化输入 \_\_format\_\_ 格式化输入 一、\_\_format__ 自定制格式化字符串 2019:12:29 12 29 2019
阅读全文
摘要:\_\_setitem\_\_和\_\_getitem和\_\_delitem__ [TOC] 一、\_\_setitem__ 正括号赋值时触发 二、\_\_getitem__ 正括号取值时触发 三、\_\_delitem\_\_与\_\_delattr__ __delitem__:中括号删除时触发
阅读全文
摘要:描述符(\_\_get\_\_和\_\_set\_\_和\_\_delete\_\_) 一、描述符 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议 \_\_get__():调用一个属性时
阅读全文
摘要:\_\_getattribute\_\_ 一、\_\_getattr\_\_ 不存在的属性访问,触发__getattr__ 10 执行的是我 二、\_\_getattribute\_\_ 查找属性无论是否存在,都会执行 不管是否存在,我都会执行 不管是否存在,我都会执行 三、\_\_getattr\
阅读全文
摘要:面向对象进阶小结 一、面向对象进阶小结 面向对象最本质解决的问题就是:提供可扩展性 类与对象:程序中必须现有类,再有对象 类中有属性,有方法 绑定方法:定义在类内部,没有装饰器装饰的方法都是对象的绑定方法,需要对象来调用,对象调用的时候,会把自身传入 1.1 类的继承 继承父类,则会有父类的所有属性
阅读全文
摘要:property装饰器 一、什么是property特性 property装饰器用于将被装饰的方法伪装成一个数据属性,在使用时可以不用加括号而直接使用 如下的例子用于说明如何定一个简单的property属性: 100 property属性的定义和调用要注意一下几点: 1. 定义时,在实例方法的基础上添
阅读全文
摘要:super()方法详解 一、单独调用父类的方法(指明道姓) 需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。 使用方法1打印: 胖子老板,来包槟榔。 那么先写一个胖子老板的父类,执行一下: 运行一下这个胖子老板父类的构造方法\_\_init_\_ 如下: FatFather的
阅读全文
摘要:菱形继承问题 一、类的分类 1.1 新式类 继承了object的类以及该类的子类,都是新式类 Python3中所有的类都是新式类 1.2 经典类 没有继承object的类以及该类的子类,都是经典类 只有Python2中才有经典类 二、菱形继承问题 在Java和C 中子类只能继承一个父类,而Pytho
阅读全文
摘要:类的派生 一、派生 派生:子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准 1.1 派生方法一(类调用) 指名道姓(类名点方法)访问某一个类的函数:该方式与继承无关 1.2 派生方法二(super) 严格以来继承属性查找关系 super()会得到一个特殊的对象
阅读全文
摘要:类的继承 [TOC] 一、什么是继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 二、为什么用继承 使用继承可以减少代码的冗余 三、对象的继承 Python中支持一个类同时继承多个父类 使用__bases__方法可以获取对
阅读全文
摘要:面向对象基础小结 [TOC] 一、面向对象基础小结 1.1 面向对象编程 面向过程编程:类似于工厂的流水线 优点:逻辑清晰 缺点:扩展性差 面向对象编程:核心是对象二字,对象属性和方法的集合体,面向对象编程就是一堆对象交互 优点:扩展性强 缺点:逻辑非常乱 1.2 类与对象 对象:属性和方法的集合体
阅读全文
摘要:对象的高度整合 [TOC] 一、没有对象 以未来我们要连接数据库举例,如果没有面向对象的思想,我们只要想要使用一个方法,就必须得这样做 由于host、port、db、charset可能是固定不变的,sql一直在变化,因此我们通过上述的方法实现不同的sql语句,非常麻烦,因此我们可以改用默认形参 虽然
阅读全文
摘要:类和数据类型 [TOC] 一、类与数据类型 python3中统一了类与类型的概念,类就是类型 lis和lis2都是实例化的对象,因此lis使用append方法和lis2无关 二、list.append()方法原理
阅读全文
摘要:对象的绑定方法 [TOC] 一、对象的绑定方法 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性 二、类使用对象的绑定对象 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的参数规
阅读全文
摘要:python总结 [TOC] . 计算机基础之编程 1. 编程语言是人与计算机交流的介质 2. 编程是通过编程语言编写一大堆文件 3. 为什么要编程 奴役计算机,让计算机帮我们干活 计算机组成 1. CPU 1. 控制器 2. 运算器 2. 内存 3. 外存 4. 输入设备 5. 输出设备 6. I
阅读全文
摘要:Python常用模块小结 [TOC] 一、Python常用模块小结 1.1 time模块 打印三种不同形式的时间,时间戳/格式化时间/结构化时间 1.2 datetime模块 时间的加减 1.3 random模块 随机数 1.4 os模块 与操作系统交互,多用于文件操作 1.5 sys模块 与pyt
阅读全文
摘要:subprocess模块 [TOC] 一、subprocess模块 subprocess模块允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等。更多查看官网:https://docs.python.org/2/library/subproces
阅读全文
摘要:xml模块 [TOC] 一、xml简介 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。 xml的格式如下,就是通过节点来区别数
阅读全文
摘要:shutil模块 [TOC] 一、shutil模块 高级的文件、文件夹、压缩包处理模块。 1.1 zipfile压缩解压缩 1.2 tarfile压缩解压缩
阅读全文
摘要:pathlib模块 [TOC] 一、pathlib库官方定义 pathlib 是Python内置库,Python 文档给它的定义是 Object oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类
阅读全文
摘要:collections模块 [TOC] collections是Python内建的一个集合模块,提供了许多有用的集合类。 一、namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: 但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。 定义一个
阅读全文
摘要:re模块 [TOC] 一、正则表达式 正则表达式本身是一种小型的、高度专业化的编程语言,它并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的
阅读全文
摘要:matplotlib模块 matplotlib官方文档:https://matplotlib.org/contents.html?v=20190307135750 matplotlib是一个绘图库,它可以创建常用的统计图,包括条形图、箱型图、折线图、散点图、饼图和直方图。 一、条形图 二、直方图 三
阅读全文
摘要:pandas模块 pandas官方文档:https://pandas.pydata.org/pandas docs/stable/?v=20190307135750 pandas基于Numpy,可以看成是处理文本或者表格数据。pandas中有两个主要的数据结构,其中Series数据结构类似于Nump
阅读全文

浙公网安备 33010602011771号