03 2022 档案
摘要:ModelSerializer模型类序列化器 以后使用ModelSerializer跟表模型做绑定这个用的多,不需要重写update和create方法了 class BookSerializer2(serializers.ModelSerializer): class Meta: model = B
阅读全文
摘要:动态语言和静态语言 1、动态类型语言:(比如js等 在执行期间检查数据的类型的语言。 用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型。 2、静态类型语言:(比如C++、java等) 静态类型语言是在执行前编译时检查类型。在写代码时。没声明一个变量必须指定类型。 强类型定义语言和弱类型定
阅读全文
摘要:序列化器介绍 序列化器其实就是一个类 作用 1、序列化,序列化器会把模型对象(qs,book)转换成字典,经过response以后变成json字符串 2、反序列化,把客户端发(前端)送过来的数据,经过request以后变成字典(data),序列化器可以把字典转成模型-->存到数据库中 3、反序列化,
阅读全文
摘要:View路径 from django.views.generic.base import View # 最真的路径 from django.views.generic import View # 因为在generic包的init里注册了 from django.views import View #
阅读全文
摘要:执行流程 cbv路由写法:path('test/', views.TestView.as_view()) 》第二个参数是函数内存地址 》as_view()执行完,也是一个内存地址 》闭包函数view的内存地址 》当请求来了,路由匹配成功--》执行view(request),传入当次请求的reques
阅读全文
摘要:DRF介绍 全称Django REST framework 核心思想:缩减编写api接口的代码 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。在REST framework中,提供了序列化器Serialzie
阅读全文
摘要:api接口开发,最核心最常见的一个过程就说序列化,所谓序列化就说把数据转换格式。 序列化: 把我们语言识别的数据转化成指定的格式提供给别人 反序列化: 把别人提供的数据转换/还原成我们需要的格式 Django中的序列化和反序列化 序列化过程: 我们再Django中获取到的数据默认是模型对象(qs对象
阅读全文
摘要:http协议介绍 http(Hypertext transfer protocol)超文本传输协议,它是互联网上应用最为广泛的一种网络协议,工作在应用层。基于TCP协议(传输层)之上,规定WWW服务器 , 是浏览器之间信息传递规范。使用的默认端口号为80端口。https默认端口是443 http协议
阅读全文
摘要:HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 HTTP 状态码的英文为 HTTP Status Code 常见的HTTP状态码
阅读全文
摘要:restful规范介绍 restful规范是前后端分离的标准 REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。 RESTful是一种定义Web API接口的设
阅读全文
摘要:下载安装 官网地址 https://www.getpostman.com/ 简易get请求 postman使用简介 前后端交互的编码格式 -urlencoded:正常的post请求提交数据:name=zys&age=19 -formdata:post请求上传文件:带文件二进制形式 -json:bod
阅读全文
摘要:Web应用模式 前后端混合开发 返还的是html的内容,需要写模板 页面渲染是在后台完成 前后端分离开发 不用模板语法渲染页面,在前端使用js渲染页面;页面渲染在前端完成。 以后前端人员只负责写前端,后端人员只负责写后端 前端的展现形式不一定只是网页,也可能是app或者小程序等等 API接口 API
阅读全文
摘要:IO模型简介 IO模型研究的主要是网络IO(linux系统) 基本关键字 同步(synchronous) 大部分情况下会采用缩写的形式 sync 异步(asynchronous) async 阻塞(blocking) 非阻塞(non-blocking) 五种IO blocking IO 阻塞IO n
阅读全文
摘要:协程概念 协程是是单线程下的并发,又称微线程,纤程。英文名Coroutine。 一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 协程特点 1、必须在只有一个单线程里实现并发 2、修改共享数据不需加锁 3、用户程序里自己保存多个控制流的上下文栈 4、附加:一个协程
阅读全文
摘要:池的概念 池是用来保证计算机硬件安全的情况下最大限度的利用计算机 它降低了程序的运行效率但是保证了计算机硬件的安全 从而让你写的程序能够正常运行 线程池和进程池 池子使用 只需要将需要做的任务往池子中提交即可 自动会有人来服务你 任务的提交方式 同步:提交任务之后原地等待任务的返回结果 期间不做任何
阅读全文
摘要:什么是线程 进程:资源单位(起一个进程仅仅只是在内存空间中开辟一块独立的空间) 线程:执行单位(真正被cpu执行的其实是进程里面的线程,线程指的就是代码的执行过程,执行代码中所需要使用到的资源都找所在的进程索要) 每一个进程肯定自带一个线程 将操作系统比喻成一个大的工厂,那么进程就相当于工厂里面的车
阅读全文
摘要:黏包现象 1、数据管道的数据没有被完全取出来 接收方不及时接收缓冲区的包,造成多个包接收(客户端发送了一段数据,服务端只收了一小部分,服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包) 服务端 from socket import * ip_port=('127.0.0.1',8080)
阅读全文
摘要:socket层 socket就是一个模块。我们通过调用模块中已经实现的方法建立两个进程之间的连接和通信。也有人将socket说成ip+port,因为ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序。所以我们只要确立了ip和port就能找到一个应用程序,并且使用so
阅读全文
摘要:下载 官网:https://v3.bootcss.com/
阅读全文
摘要:import os if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day06.settings") import django django.setup() # 代码都要写在这个下面 from
阅读全文
摘要:Django链接数据库 1、链接mysql的配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db01', 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'roo
阅读全文
摘要:request.method 返回请求方式,并且是全大写的字符串形式 request.POST 获取用户post请求提交的普通数据不包括文件 request.POST.get 只获取列表最后的一个元素 request.POST.getlist 直接讲列表中的元素全部取出 request.GET 获取
阅读全文
摘要:Django三板斧 1、HttpResponse 返回字符串类型的数据 2、render 返回html文件 3、redriect 重定向 可以跳转到别人的网站也可以跳转到自己的网站,跳转到自己的网站的时候可以不用加ip和 端口 4、render的两种传值方式 传值少的时候可以使用第一种传值方式,值多
阅读全文
摘要:使用场景 只要某个字段的可能性是可以列举完全的,那么一般情况下都会采用choices参数 代码演示 class User(models.Model): username = models.CharField(max_length=32) age = models.IntegerField() # 性
阅读全文
摘要:Auth模块介绍 django在启动之后就可以直接访问admin路由,需要输入用户名和密码,数据参考的就是auth_user表,并且还必须是管理员用户才能进入 创建超级用户(管理员) python manage.py createsuperuser 简写 createsuperuser 创建超级用户
阅读全文
摘要:正常思路 def wechat(content): print('微信通知:%s'%content) def qq(content): print('qq通知:%s'%content) def email(content): print('邮箱通知:%s'%content) 启动文件 from no
阅读全文
摘要:importlib模块作用 专门用来字符串类型的导入 缺陷 最小单位只能到py文件名 演示
阅读全文
摘要:Django中间件 1、Django中间件是Django的门户 请求来的时候需要先经过中间件才能到达真正的Django后端 响应走的时候最后也需要经过中间件才能发送出去 2、Django自带七个中间件 MIDDLEWARE = [ 'django.middleware.security.Securi
阅读全文
摘要:cookie 以登录功能为例 原理: 当用户第一次登陆成功之后 将用户的用户名密码返回给用户浏览器 让用户浏览器保存在本地,之后访问网站的时候浏览器自动将保存在浏览器上的用户名和密码发送给服务端,服务端获取之后自动验证,这样的方式具有非常大的安全隐患 概述: 服务端保存在客户端浏览器上的信息都可以称
阅读全文
摘要:CBV添加装饰器需要借助模块 from django.utils.decorators import method_decorator CBV中django不建议你直接给类的方法加装饰器,无论该装饰器能都正常给你 都不建议直接加 第一种 from django.views import View f
阅读全文
摘要:批量插入 批量插入数据的时候,可以使用orm给你提供的bulk_create能够大大的减少操作时间 def ab_pl(request): # 普通做法 # 先给Book插入一万条数据 for i in range(10000): models.Book.objects.create(title='
阅读全文
摘要:ORM字段 1、AutoField int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 2、IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。 3、CharField 字符类型
阅读全文
摘要:全自动 就是利用orm自动帮我们创建第三张关系表 优点: 代码不需要你写 非常的方便 还支持orm提供操作第三张关系表的方法 不足之处: 第三张关系表的扩展性极差(没有办法额外添加字段...) 代码: class Book(models.Model): name = models.CharField
阅读全文
摘要:事务 ACID 原子性:不可分割的最小单位 一致性:跟原子性是相辅相成 隔离性:事务之间互相不干扰 持久性:事务一旦确认永久生效 开启事务 start transaction; 提交事务 commit; 回滚事务 rollback; Django中开启事务 '''Django开启事务''' from
阅读全文
摘要:聚合查询 需要借助关键字:aggregate 使用环境:聚合查询通常情况下都是配合分组一起使用的 使用聚合查询,需要导入相关模块 例子 from app01 import models from django.db.models import Max,Min,Sum,Count,Avg # 1 所有
阅读全文
摘要:正反向的概念 正向:外键字段在我手上那么,我查你就是正向 反向:外键字段如果不在手上,我查你就是反向 正向查询按字段;反向查询按表名小写 子查询(基于对象的跨表查询) 1、根据练习题理解 # 1.查询书籍主键为1的出版社 # book_obj = models.Book.objects.filter
阅读全文
摘要:外键字段的增删改查 1、auto_now=False,如果设置为True, 在更新当前记录的数据时候,会自动更新时间 auto_now_add=False,如果设置为True,当插入数据的时候,会把当前时间自动添加进去 publish_time = models.DateTimeField(auto
阅读全文
摘要:普通做法 def user_list(request): user_list = models.User.objects.all() # queryset lst = [] for user in user_list: temp_dict = {} temp_dict['username'] = u
阅读全文
摘要:Ajax优点与精髓 1、精髓 1、异步提交 2、局部刷新 2、优点 不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程) AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。 同步交互:客户端发出一
阅读全文
摘要:ACID A:原子性 C:一致性 I:隔离性 D:持久性 原子性(atomicity) 一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency) 事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isol
阅读全文
摘要:多表查询思路 1、子查询 将SQL语句查询的结果括号括起来当做另外一条SQL语句的条件 根据部门编号查询部门名称 select name from dep where id=(select dep_id from emp where name='jason'); 2、连表查询 先将需要使用到的表拼接
阅读全文
摘要:数据准备 # 数据准备 create table emp( id int primary key auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的
阅读全文
摘要:外键 其实就是用来标识表与表之间的数据关系,简单的理解为该字段可以让你去到其他表中查找数据 表与表之间建关系 1、表关系分类 一对一 多对多 一对多 没有关系 判断表关系的方式:换位思考 2、一对多 针对一对多的表关系 外键字段建在多的一方 foreign key(dep_id) reference
阅读全文
摘要:创建表的完整语法 语法: create table 表名( 字段名1 字段类型(数字) 约束条件, 字段名2 字段类型(数字) 约束条件, 字段名3 字段类型(数字) 约束条件 ); 注意事项 1、字段名和字段类型是必须的 2、数字和约束条件是可选的 并且 约束条件可以有多个空格隔开即可 3、最后一
阅读全文
摘要:整型 1、整型有四种 tinyint smallint int bigint 2、区别 不同的int类型能够存储的数字范围是不一样的 要注意是否存负数(正负号需要占一个比特位) 针对手机号码只能用bigint 3、正负号 所有的int类型默认都需要正负号 create table t6(id tin
阅读全文
摘要:查看存储引擎的方式 show engines; MyISAM MySQL5.5之前默认的存储引擎 不支持事务、行级锁和外键 针对数据的操作较于InnoDB不够安全, 但是数据的存取速度较于InnoDB更快 InnoDB MySQL5.5之后默认的存储引擎 支持事务、行级锁和外键 针对数据的操作更加的
阅读全文
摘要:FBV FBV: function based view 就是平常在views.py中写的函数 from django.shortcuts import render, HttpResponse # Create your views here. from django.http import Js
阅读全文
摘要:ORM查询方法 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude
阅读全文
摘要:模板语法之传值 1、跟变量相关的都使用双括号 {{}} 2、跟逻辑相关的都使用 {% %} 3、模板文件中取值一律使用点语法 4、在模板文件里面的函数和类,不用加括号,会自动加括号调用, 不能传递参数 模板语法之过滤器 类似于python里面的内置方法 1、语法 {{变量|过滤器:参数}} 2、de
阅读全文
摘要:def index(request): if request.method == 'POST': print(request.FILES) # 获取文件数据 file_obj = request.FILES.get('file') # 文件对象 print(file_obj) with open(f
阅读全文
摘要:json格式的数据作用 前后端数据交互需要使用到json作为过渡,实现跨语言传输数据 JsonResponse对象 序列化字典 from django.http import JsonResponse def test(request): user_dict = {'username': '阿飞',
阅读全文
摘要:url和path Django1.x路由层使用的是url方法 Django2.x和Django3.x版本中路由层使用的是path方法 url()第一个参数支持正则 path() 第一个参数是不支持正则,写什么就匹配什么。 2.x和3.x还支持re_path,相当于1.x中的url,第一个参数支持正则
阅读全文