04 2023 档案
摘要:## 1.celery介绍 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html Celery 官方文档中文版:http://docs.jin
阅读全文
摘要:1.接口文档 # 前后端分离 -我们做后端,写接口 -前端做前端,根据接口写app,pc,小程序 -作为后端来讲,我们很清楚,比如登录接口 /api/v1/login/ >post >username,password 编码方式json 》返回的格式 {code:100,msg:登录成功} -后端人
阅读全文
摘要:## 1.认证组件 ### 1.1 局部认证 ```python 1.首先写两个接口,一个查询单个一个查询所有,我们利用视图扩展类和视图子类写在一个视图类上: views.py: from rest_framework.viewsets import ViewSetMixin from rest_f
阅读全文
摘要:## 1.9个视图扩展类 ```python 1.两个视图基类:APIView、GenricAPIView 2.5个视图扩展类:CreateModelMixin,UpdateModelMixin,RetrieveModelMixin,ListModelMixin,DestroyModelMixin
阅读全文
摘要:1.算法简介及二分法 1.什么是算法: 算法就是解决问题的有效方法 不是所有的算法都很高效也有不合格的算法 2.算法应用场景: 各种软件、网站推送 成像算法(AI相关) 几乎涵盖了我们日常生活中的方方面面 3.算法工程师要求 待遇非常好 但是要求也非常高 4.算法部门 不是所有的互联网公司都养得起算
阅读全文
摘要:1.异常常见类型 SyntaxError:语法错误 NameError:名字错误,一般由于变量名未定义造成 IndexError:索引错误,列表的索引值超过了范围 KeyError:字典键错误,字典的键找不到 IndentationError:缩进错误 2.异常处理语法结构 1.基本语法结构: tr
阅读全文
摘要:1.模块简介 1.模块的本质:内部具有一定功能(代码)的py文件 2.python模块的历史: python刚开始的时候所有搞其他编程语言的程序员都看不起 甚至给python起了个外号>>>:调包侠(贬义词) 随着时间的发展项目的复杂度越来越高 上面那帮人也不得不用一下python 然后发现真香定律
阅读全文
摘要:## 1.global与nonlocal ```python """ 当我们在全局定义一个变量,在函数内可以拿到,但是无法修改(要通过global)。我们在函数内定义一个变量,在函数外无法使用 """ 1.global:局部名称空间修改全局名称空间的数据 n = 100 def index(): g
阅读全文
摘要:1.函数前戏 name_list = ['jason', 'kevin', 'oscar', 'jerry'] 需求1.想要统计列表中的元素个数,该怎样做? name_list = ['jason', 'kevin', 'oscar', 'jerry'] print(len(name_list))
阅读全文
摘要:1.文件操作 1.文件的概念 就是操作系统暴露给用户操作硬盘的快捷方式,双击一个文件就是将硬盘中的数据加载到内存,保存文件就是将内存中的数据刷到硬盘 2.代码打开文件的两种方式: 方式1: 不推荐,因为close关键字经常被忘记 f = open(文件路径,读写模式, encoding= 'utf8
阅读全文
摘要:字符编码理论 该知识点理论特别多 但是结论很少 代码使用也很短 1.字符编码只针对文本数据 2.既然计算机内部只认识01 为什么我们却可以敲出人类各式各样的字符 肯定存在一个数字跟字符的对应关系 存储该关系的地方称为>>>:字符编码本 3.字符编码发展史 3.1.一家独大 计算机是由美国人发明的 为
阅读全文
摘要:1.数据类型内置方法理论 1.每一种数据类型本身都含有一系列的操作方法,内置方法是其本身自带的功能,是其中最多的。 2.python中数据类型调用的内置方法的统一句式为>>>:句点符(在数类型之后) 句式:数据类型.字符串内置方法 eg:str.字符串内置方法 ps:字符串内容较多,应该联系之前的内
阅读全文
摘要:区别1: python2中需要用户自己制定数据类型,写什么类型就是什么数据类型,写字符串要加双引号。 python3中不管什么数据类型都会转成字符串。python中的raw_input与python3中的input一致,不管输入什么数据类型都会转成字符串。 区别2: python2中打印方式有两种:
阅读全文
摘要:1.流程控制理论 流程控制:控制事务的执行流程 事物的执行流程可以分为三类: 1.顺序结构 从上往下依次执行,我们之前编写的的代码都属于顺序结构。 2.分支结构 事物的执行会根据条件的不同做出不同的执行策略 3.循环结构 事物的执行会根据各个条件出现反复的循环 """ 1.在代码的世界里很多时候会出
阅读全文
摘要:1.基本数据类型之布尔值bool 1.用来判断事物的对错,是否可行,用于流程控制中 2.只有两种状态: True:对的、真的、可行的 False:错的、假的、不可行的 3.python中所有的数据都自带布尔值 布尔值为False的数据: 0 None ''(空字符串) [](空列表) {}(空字典)
阅读全文
摘要:垃圾回收机制 """ 有一些语言内存空间的申请和释放需要程序员写代码才能完成,但是python不需要,通过垃圾回收机制自动管理 """ 1.引用计数 name = 'max' #数据值'max'的引用计数为1 name1 = name #数据值'max'的引用计数为2 数据值被变量名引用的次数称为引
阅读全文
摘要:python代码编写规范: 1.单行注释如果在代码之后,#与代码之间要空两格,#与注释之间空一格。 2.如果内容与井号自成一行,那么井号和内容之间空一格。 3.列表、字典、元组、集合逗号与后面的元素之间要空一格。 4.赋值符号=的左右两端都需要一个空格。 5.(),{},[]中的两端不需要空格。
阅读全文
摘要:## 1.序列化类常用字段和字段参数 ### 1.1 常用字段类 ```python 1.BooleanField 2 NullBooleanField 3 CharField CharField(max_length=None, min_length=None, allow_blank=False
阅读全文
摘要:1.反序列化类校验部分源码分析(了解) 1.当我们在视图类中生成一个序列化类对象ser,并且用ser.is_valid()是就会执行校验,校验通过返回True,不通过返回False。首先对象ser和序列化类中都没有方法is_valid()。 然后我们去其父类Serializer中找,也没找到,再去其
阅读全文
摘要:1.web应用模式 """ django是一个web框架,专门用来写web项目,之前学的bbs项目,图书管理系统,用的是前后端混合开发。 """ 前后端混合模式: 1.后端开发:写后端,也要写模板语法。(模板语法是指在前段页面中{{}}中以及{% %}中写的python代码)。 2.全栈开发:前后端
阅读全文
摘要:本文详细介绍了 HTTPS 相较于 HTTP 更安全的原因,包括对称加密、非对称加密、完整性摘要、数字证书以及 SSL/TLS 握手等内容,图文并茂、理论与实战结合、建议收藏! 1. 不安全的 HTTP 近些年来,越来越多的网站使用 HTTPS 协议进行数据传输,原因在于 HTTPS 相较于 HTT
阅读全文
摘要:1.auth认证模块 1.django自带一个admin路由,但是需要我们自己填写管理员账号和密码。如果想要是用django的admin后台管理,首先需要创建表(直接执行数据库迁移命令会默认产生auto_user表: python38 manage.py makemigrations python3
阅读全文
摘要:1.cookies与session简介 1.最早期的互联网不需要保存用户信息,所有用户哪怕之前成功登陆每次用户登录也要重新输入账号和密码。 2.cookie:保存在客户端与用户状态相关的数据,cookie是类似字典的K:V键值对。 """ 比如用户每登陆成功一次浏览器会提醒用户是否要保存用户名和密码
阅读全文
摘要:1.Django中间件及两个重要方法 1.django有7个中间件,并且还支持用户自定义中间件。 2.当我们完成一些全局相关的功能(例如用户访问频率)、权限(中间件会获取到用户的权限以及访问的路由,并且查看该用户是否有该路由的权限)时需要用到中间件。 3.Django的中间件在settings中的M
阅读全文
摘要:## 1.模型层之前期准备 ```python 1.自带的sqlite3数据库对时间字段不敏感,有时候会展示错乱,所以我们习惯切换成常见的数据库比如MySQL,django,orm并不会自动帮你创建库 所以需要提前准备好。 2.单独测试某个django文件: django默认要求不能单独测试某个文件
阅读全文
摘要:1.模板层传值 方式1:在views重定义函数时,将函数体代码里的名字用字典的键一一对应,将该字典当做render()的第三个参数传给html文件。在html文件中通过{{键名}}的方式拿到views中的名字。 views: def func1(request): name = 'max' age
阅读全文
摘要:1.视图层之必会三板斧 """ 用来处理请求的视图函数都必须返回HttpResponse对象:完全正确。因为。 """ 1.查看源码我们得知,render功能的返回值是一个HttpResponse对象,说明它们都是有HttpResponse对象演变而来的 def render(): return H
阅读全文
摘要:1.Django请求生命周期流程图 1.路由层、视图层、模板层、模型层、组件、BBS项目 2.django路由层 1.路由匹配: '''当我们输入一个地址时,接口后面的/不用输入,也可以自动跳转''' django2.X以上版本,path第一个参数末尾可以不加/,django也会自动补全该接口。 d
阅读全文
摘要:1.静态文件配置 1.静态文件:不经常变化的文件,主要针对html文件(CSS文件、js文件、img文件、第三方框架文件)。 2.django针对静态文件资源需要单独开始一个目录统一存放:static目录。该目录下如果各种类型的文件很多,还可以继续创建目录。css目录、js目录、img目录、第三方插
阅读全文
摘要:1.纯手撸web框架 1.web框架的本质 理解1:连接前端与数据库的中间介质 理解2:socket服务端 2.手写web框架 1.编写socket服务端代码 2.浏览器访问响应无效>>>:HTTP协议 3.根据网址后缀的不同获取不同的页面内容 4.想办法获取到用户输入的后缀>>>:请求数据 5.请
阅读全文
摘要:1.SQL注入问题 简单实现利用数据库实现注册登录功能: import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='123', database='20230127th', c
阅读全文
摘要:1.无符号、零填充 1.unsigned:用在生成表的过程中,表示不取负数,只取正数和0,负数会直接报错,eg:id int unsigned。 2.zerofill:用在生成表的过程中,跟在整形2后面,表示不足几位会在数字前自动填充0,凑够括号内的位数。eg:id int(5) zerofill。
阅读全文
摘要:1.字符编码与配置文件 1.\s:查看当前MySQL相关信息:当前用户、版本、编码、端口号。 """ Server characterset、Db characterset、Client characterset、Conn.characterset每个编码都不一样,我们需要手动改成utf8,注:My
阅读全文
摘要:1.存取数据的演变史 1.文本文件: 文件路径不固定(导致代码兼容性下降) 数据格式不统一:(max|123, max_123) 2.软件开发目录规范: 1.规定了数据应该保存在db目录下>>>:路径偏向统一(都在db目录下) 2.数据格式没有得到统一>>>:文本、json格式、对象 3.数据库服务
阅读全文
摘要:1.多进程实现TCP服务端并发 1.之前我们学习了一个服务端对应一个客户端的操作,但是我们无法实现一个服务端对应多个客户端的操作。因此我们需要在pycharm的右上角点击倒三角,选择Edit Configurations,我们便可进行多客户端操作。 客户端代码: import socket clie
阅读全文
摘要:1.同步与异步 1.同步异步用来表达任务的提交方式 2.同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。 '''所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完
阅读全文
摘要:1.黏包现象 1.黏包现象产生的背景: 1.1 服务端连续执行三次recv 1.2 客户端连续执行三次send 执行上述操作会发现服务端一次性接收到了客户端三条消息,而后面两次什么都没接收到,该现象称为"黏包现象"。 2.黏包现象产生的原因: 2.1 谁不知道每次的数据到底多大 2.2 TCP也被称
阅读全文
摘要:1.传输层之TCP与UDP协议 1.TCP协议 1.传输控制协议(也称为TCP协议或可靠协议)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议,(数据不容易丢失);造成数据不容易丢失的原因不是因为有双向通道,而是因为有反馈机制,类似工作机制如下:给对方发送消息之后会保留一个副
阅读全文
摘要:1.软件开发架构 1.C/S模块 1.1 Client:客户端:客户也就是你,客服端也就是你这一端可以接触到的程序,手机app,web网页等,我们可以在客户端的界面上向服务器发送请求以及数据,交给服务器处理 1.2 Service:服务端:也就是为客户端提供“服务”,接收并储存客户端发送过来的数据或
阅读全文
摘要:1.优势:能够序列化python中所有的类型 2.缺陷:只能够在python中使用,无法跨语言传输 3.功能:产生一个对象并且保存在文件中,取出时还是一个对象 class C1: def __init__(self, name, age): self.name = name self.age = a
阅读全文
摘要:## 1.面向对象的魔法方法 ```python 魔法方法:类中定义的双下方法都称为魔法方法 使用方法:不需要人为调用,在特定条件下自动触发运行 eg:__init__是创建对象之后自动触发给对象添加独有数据的方法 1.__init__:添加对象独有数据的方法,对象添加数据时自动触发 class A
阅读全文
摘要:## 1.派生方法实战演练 ```python """ 背景:如何将字典d序列化成json格式? """ import json import datetime d = { 't1': datetime.date.today(), 't2': datetime.datetime.today(), '
阅读全文
摘要:1.动静态方法 1.在类中的定义的函数(功能)有多种属性 """ 类名加括号会产生一个对象,对象用点函数名的方式不用传参因为func1会把gro当做参数传进去。类名点函数名需要传一个参数。 """ class Group: s = 'from Group' def func1(self): prin
阅读全文
摘要:1.面向对象前戏之人狗大战 # 编写代码简单的实现人打狗 狗咬人的小游戏(剧情需要) """推导步骤1:代码定义出人和狗""" person1 = { 'name': 'jason', 'age': 18, 'gender': 'male', 'p_type': '猛男', 'attack_val'
阅读全文
摘要:1.hashlib加密模块 1.加密:将明文数据处理成密文数据,让人无法看懂 2.为什么加密:保证数据的安全 3.如何判断数据是否加密:如果是一长串没有规律的字符串(数字、字母、符号)那么数据被加密 4.密文的长短又和讲究:秘闻越长表示使用的加密算法(数据的处理过程)越复杂 5.常见的加密算法:md
阅读全文
摘要:1.第三方模块的下载应由 第三方模块:别人写的模块 一般情况下功能都特别强大 我们如果想使用第三方模块 第一次必须先下载后面才可以反复使用(等同于内置模块) 下载第三方模块的方式 1.pip工具 注意每个解释器都有pip工具 如果我们的电脑上有多个版本的解释器那么我们在使用pip的时候一定要注意到底
阅读全文
摘要:1.软件开发目录规范 1.面条版阶段 所有的代码全部堆叠在一起 """ 第一个阶段可以看成是直接将所有的数据放在C盘 视频 音频 文本 图片 """ 2.函数版阶段 根据功能的不同封装不同的函数 """ 第二个阶段可以看成是将C盘下的数据分类管理 视频文件夹 音频文件夹 文本文件夹 图片文件夹 ""
阅读全文
摘要:1.哨兵高可用 主从存在的问题: 主从复制,主节点发生鼓掌,可以手动转移,让其中一个slave变成master,这就是哨兵 主从复制,只能是主来写数据,所以写的能力和存储能力有限,需要做集群 哨兵:sentinel 哨兵就是一个redis进程 哨兵的工作原理: 1.多个sentinel发现并确认ma
阅读全文
摘要:1.正则表达式基础 案例:京东注册手机号校验 基本需求:手机号必须是11位、手机号必须以13 15 17 18 19开头、必须是纯数字 '''纯python代码实现''' while True: # 1.获取用户输入的手机号 phone_num = input('请输入您的手机号>>>:').str
阅读全文
摘要:1.常用内置模块之collections模块 1.具名元组:namedtuole:可以使用第一个元素的名字来修饰元组 from collections import namedtuple point = namedtuple('位置坐标', ['x', 'y']) p1 = point(4, 6)
阅读全文
摘要:1.重要内置函数 1.zip:组成一个新的列表,列表中的元素是几个列表当中各元素组成的元组 1.1 几个列表数据值个数相等时: l1 = [11, 22, 33, 44, 55] l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony'] l3 = [1, 2
阅读全文
摘要:B-Tree和B+Tree 前面是 B-Tree,后面是 B+Tree,两者的区别在于: 1.B-Tree所有节点都可以带指针,B+Tree只有叶子结点才可以带指针(叶子结点就是末尾的节点) 2.B-Tree中叶子结点没有指针连在一起,B+Tree中所有叶子结点通过指针连在一起 3.B-Tree可能
阅读全文
摘要:乐观锁和悲观锁它们都是一种思想,都是人们定义出来的概念,和语言无关 并发控制:当程序出现并发的问题时,我们需要保证在并发情况下数据的准确性,以保证当前用户在和其他用户一起操作时,得到的结果和他单独操作时得到的结果是一样的,没有做好并发控制,就可能导致脏读、幻读、不可重复读等问题 悲观锁:当要对一条数
阅读全文
摘要:1.dockerfile安装,编写 我们的镜像来源: 1.远程仓库拉取 2.用仓库做成的镜像 3.把备份的恢复 4.使用dockerfile构建 Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像。使用dockerfile不需要先创建容器在里面加东西
阅读全文
摘要:1.mysql部署 # 将data路径、配置文件路径、配置文件分别映射到容器中。但是我们目前没有文件夹,首先在home路径下创建文件夹: mkdir /home/mysql mkdir /home/mysql/conf.d mkdir /home/mysql/data/ # 然后创建my.cnf并且
阅读全文
摘要:1.Iaas IaaS: Infrastructure-as-a-Service(基础设施即服务)。 第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行
阅读全文
摘要:1.docker介绍 1.1 虚拟化技术和相关概念 在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象转换后呈现出来,打破实体结构间不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部门
阅读全文
摘要:1.flask-sqlalchemy使用 1.使用原生sqlalchemy写接口:只要一访问根目录,就会添加这本书 from flask import Flask from settings import session from models import Book app = Flask(__n
阅读全文
摘要:1.sqlalchemy快速使用 flask中没有orm框架。我们需要使用一个对象关系映射来操作数据库。sqlalchemy就是其中之一。 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,
阅读全文
摘要:1.django、flask高并发部署 1.1 协程产生背景 由于Python有把大锁GIL,会将多个线程在同一时刻,只能有一个线程执行,变成'串行',所以一个多线程python进程,并不能充分使用多核CPU资源,所以对于Python进程,可采用多进程部署方式比较有利于充分利用多核的CPU资源,而u
阅读全文
摘要:1.请求上下文分析预备知识 1.1 导出项目依赖 我们之前使用导出项目依赖的命令是: pip freeze > requirements.txt # 导出项目依赖 pip install -r requirements.txt # 安装项目依赖 这种方式更适合在虚拟环境的导出和导入,因为它会导出当前
阅读全文
摘要:1.蓝图的使用 蓝图是由blueprint翻译过来的,作用是之前在一个py文件中写的flask项目,后期划分目录,不用蓝图同样可以划分项目 1.1 不用蓝图划分项目 不使用蓝图划分也可以完成项目需求,但是随着项目深入导入情况越来越多可能会出现导入错误 1.项目目录结构: 根目录: src init.
阅读全文
摘要:1.flask写cbv 1.1 cbv模板 之前我们都是写fbv,现在我们写cbv,这样可以把get请求写在一个视图类中: from flask import Flask, request from flask.views import View, MethodView app = Flask(__
阅读全文
摘要:1.flask和pythonweb框架介绍 1.1 框架介绍: django:大而全,内置的app多,第三方app也多 Flask:小而精,没有过多的内置组件,只完成web框架最基本的功能,需要借助于第三方,完成更丰富的功能 web.py:是一个小巧灵活的Python框架,它简单而且功能强大(国内几
阅读全文