- 博客(50)
- 收藏
- 关注
原创 drf序列化与序列化器的使用
全局钩子: 不符合直接捕获错误 value = self.validate(value) 全局钩子:self是BookSerializer的对象,如果自己写了钩子,那么就执行我们的,没写走父类,父类中直接返回了,并没有做校验。使用序列化类实现五个接口功能,但是我们发现并没有做数据校验,也没有做反序列化,是我们自己手动去进反序列化,是我们自己使用for来进行拼接的,很不方便,我们可以使用一个drf自带的名叫序列化器,来完成。用于HTML展示API页面时,显示的字段帮助提示信息。
2024-01-03 22:03:22
983
原创 def高级之序列化的使用
全局钩子: 不符合直接捕获错误 value = self.validate(value) 全局钩子:self是BookSerializer的对象,如果自己写了钩子,那么就执行我们的,没写走父类,父类中直接返回了,并没有做校验。使用序列化类实现五个接口功能,但是我们发现并没有做数据校验,也没有做反序列化,是我们自己手动去进反序列化,是我们自己使用for来进行拼接的,很不方便,我们可以使用一个drf自带的名叫序列化器,来完成。用于HTML展示API页面时,显示的字段帮助提示信息。
2024-01-03 22:00:21
913
原创 drf入门规范
写cbv'时,只需要在视图类中写跟请求方式同名的方法即可,使用不同的请求方式,就会执行不同的执行方法,在这个方法中只需要写原来的方法逻辑即可。
2023-12-22 20:43:46
930
原创 Django整合回顾
HTTP/0.9:功能简陋,只支持GET方法,只能发送HTML格式字符串。HTTP/1.0:支持多种数据格式,增加POST、HEAD等方法,增加头信息,每次只能发送一个请求(无持久连接)HTTP/1.1:默认持久连接、请求管道化、增加缓存处理、增加Host字段、支持断点传输分块传输等。HTTP/2.0:二进制分帧、多路复用、头部压缩、服务器推送。
2023-11-27 21:55:17
1111
原创 cookie和session
cookie:1. 网站它是不用保存用户的信息,最早期的时候,网站都是一些静态网站eg:新闻网站 博客2. 随着技术发展,诞生了很多需要登录的网站eg: 淘宝 京东 支付宝...登录:解决了在网站中,网站可以识别出你是谁以登录为例,当用户第一次登录网站的时候,用户输入用户名和密码,如果不保存下来,拿用户就每次都需要登录,很麻烦所以我们使用了cookie。
2023-11-22 23:16:42
1010
原创 Ajax技
数据的传输方式:title=dasdas&price=2312&date=&publish=2&authors=3,k,v形式的键值对传输。后端如何接收:把前端提交的数据封装到request.POST中,而传输的文件则在request.FILES中。传输方式:title=dasdas&price=2312&date=&publish=2&authors=3。提交form-data文件数据:enctype:form-data。默认的编码格式:urlencode。json格式的数据提交后。
2023-11-22 14:54:04
965
原创 Django模型层
与数据库相关的,用于定义数据模型和数据库表结构。在Django应用程序中,模型层是数据库和应用程序之间的接口,它负责处理所有与数据库相关的操作,例如创建、读取、更新和删除记录。Django的模型层还提供了一些高级功能。接下来我们可以使用测试脚本来直接运行,注意后面的Django代码必须写在测试脚本下面。判断结果集中是否含有数据 如果有则返回True 没有则返回False。只有返回的结果是queryset对时才能用query查看。首先准备工作:切换mysql数据库。如果使用get,建议加上try。
2023-11-15 23:01:22
602
原创 Django模版层
1、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.2、在app中创建templatetags模块(模块名只能是templatetags3、创建任意 .py 文件,如:my_tags.pyregister = template.Library() #register的名字是固定的,不可改变。
2023-11-15 20:13:25
470
原创 Django视图层
django视图层:Django项目下的views.py文件,它的内部是一系列的函数或者是类,用来处理客户端的请求后处理并返回相应的数据。把里面的safe改为False即可但是我们不能修改源码所以我们在JsonResponse中修改。request.FILES 接收的则是文件的数据,普通的数据还在POST中。当我们上传文件时,发现我们只得到的结果是上传文件的名称,并没有照片的数据。注意:用来处理视图函数的请求都需要HttpResponse对象!总结:request.POST 一值都是接収的是非文件数据。
2023-11-14 21:54:12
366
原创 Django路由层
随着项目的复杂程度越来越来越大,路由肯定也是越来越多,路由文件就会增加很多的路由地址,就会导致路由文件很混乱,不好管理,也不够清晰,我们可以把总路由文件进行拆分,拆分到各个应用下面去,每一个应用都可以有自己的路由文件。在Django的MVT架构中,路由层负责处理用户的请求,然后将请求交给相应的视图函数进行处理,最后将处理结果返回给用户。在Django中,路由层的配置文件是urls.py,这个文件定义了每个URL模式(也被称为路由)以及该URL模式应该映射到哪个视图函数进行处理。
2023-11-13 22:26:26
652
原创 Django基础
orm:对象映射模型在Django中操作数据库时,就不在用sql语句了,而是使用面向对象中的语法来操作缺点:代码封装的程序太高,导致执行效率下降。类名;就是sql当中的表名对象:就是一条记录属性:就是代表一个字段我们的orm在models.py文件中编写class Userinfo(models.Model): # 类似与表名# 类似于usernmae varcher(32)输入迁移:python manage.py makemigrations,此时,还不足以创建,只是生成迁移的记录。
2023-11-09 22:10:39
581
原创 web框架与Django
Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行。WEB应用程序一般是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。
2023-11-08 21:11:58
614
原创 jQuery基础
jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应的插件,并且用jQuery插件做出来的效果很炫,并且可以更具自己需要去改写和封装插件,简单实用。丰富的DOM选择器。jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。
2023-11-05 21:40:25
149
原创 JavaScript中BOM与DOM
所有的浏览器都支持window对象,他表示浏览器窗口,所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。全局变量是 window 对象的属性。全局函数是 window 对象的方法。接下来要讲的HTML DOM 的 document 也是 window 对象的属性之一。
2023-11-02 21:57:07
128
原创 前端基础之JavaScript
null表示变量的值是空(null可以手动清空一个变量的值,使得该变量变为object类型,值为null),undefined则表示只声明了变量,但还没有赋值。注意事项:变量名的命名规范使用驼峰式命名,保留字不能作为变量名使用,变量名是区分大小写的。1. 在JavaScript中,变量的命名以:数字,字母,_,$组成,不能以数字开头。数组对象的作用是:使用单独的变量名来存储一系列的值。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
2023-11-01 21:36:53
201
原创 CSS与基本选择器
display:"inline" 按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。display:"block" 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。默认情况下,只有块儿级元素才能设置长、宽,内联元素不能设置,设置了也不错,就是没有效果而已。
2023-10-31 22:15:14
1160
原创 前端知识与基础应用#2
img标签是展示图片的 ,如果width设置了width=“500px” height=“200”,如果不一致则会出现变形失真,所以一般情况下只写一个就行。标签之间是可以互相嵌套的,块儿级元素是可以嵌套所有的标签,要注意的是p标签不能嵌套块儿级元素,但是可以 嵌套行内元素。"""对于form-data提交的数据,后端还是在form里面去普通数据,而在files里面去文件数据"""name的属性值就是提交到后端数据的key值,用户输入的内容就是value值。
2023-10-30 21:48:29
313
原创 前端知识与基础应用
html(超文本标记语言Hypertext Markup Language, HTML)一种创建网页的标记语言,本质上是浏览器可识别的规则(协议),我们按照规则写网页,浏览器在进行渲染,对于不同的浏览器,同一个标签可能有不同的解释,这是兼容性的问题。网页文件的拓展名一般为:html或htm。html只是标记语言,并不是编程语言。网页中一些图片等都是HTML标签写代码的方式1. pycharm2. 直接在浏览器中写3. 直接在txt文本也可以4. vscode。
2023-10-29 21:03:52
262
原创 MySQL数据库#5
MySQL中的视图是一个虚拟表,它根据 SELECT 语句的结果集生成。与物理表一样,视图包含一些列和行,但是这些列和行并不是真实存在的,而是基于 SELECT 语句所定义的查询结果。
2023-10-26 21:39:23
494
原创 MySQL数据库#4
外键是指关系数据库中一个表中的字段,它与另一个表的主键相关联,用于建立两个表之间的关联关系。在使用外键时,需要定义好关系表之间的关联规则,包括指定主表和从表,以及主表和从表之间的关联字段等。根据以上分析我们得知,员工表不可以,部门表可以,表之间的关系就是:一对多,在表关系中并没有多对一。多表查询:把多张有关系的表连接成一张大的虚拟表,连接出来的虚拟表不是实际存在的,它是在内存中存储,是按照单表查询。第二个就是这个表的表达不清晰,不清楚是员工表还是部门表,表内的相关字段一直重复存储,
2023-10-25 21:53:56
53
原创 MySQL数据库#3
('哈哈','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门。('呵呵','female',38,'20101101','sale',2000.35,402,2),('西西','female',18,'20110312','sale',1000.37,402,2),('拉拉','female',28,'20170127','sale',4000.33,402,2),按照哪个字段分组就只能获取这个字段的值,别的字段不能拿到。
2023-10-24 22:38:21
41
原创 MySQL数据库#2
它是MySQL5.5版本及之前的版本默认的存储引擎、它的读取速度很快相比较与InnoDB,但是它的数据安全性较低,相对于InnoDB存储引擎,它不支持事务、支持的是表锁。只需在 insert into t2 values (1, ‘kk’, 20)逗号隔开后,继续添加(1, ‘kk’, 20),(1, ‘k1’, 20;tinyint:它是使用一个字节来保存数据,一个字节代表八位11111111----256种情况(0-255)(-128---127)如果不足四位,则会使用空格补充。
2023-10-23 21:45:16
33
原创 MySQL数据库
如何下载MySQL进入官网后推荐使用:5.6或5.7版本的,目前比较稳定,数据库软件是需要下载安装的。MySQL主要文件介绍:以自己的mysqld版本为例:mysql-5.6.48-winx64\bin目录下的mysql.exe(自带的客户端)文件和mysqld。exe(自带的服务端)文件data:MySQL是数据存储的地方my-default.ini:这个是MySQL的配置文件。
2023-10-20 21:16:09
48
原创 python网络编程与并发编程#5
答:执行第一个线程,得到a = 0,开始执行a+1,a开始的值为0,执行结束时,a值为1,当第一个线程执行结果为1还没赋予给a,这时,执行的的第二个线程已经开始执行了,拿到的结果是0,然后继续执行最终得到的结果就是 a=a+1为1。计算密集型,消耗cpu,如果开了8个线程,第一个线程会一直占着cpu,而不会调度到其他线程执行,其他7个线程根本没执行,所以我们开8个进程,每个进程有一个线程,8个进程下的线程会被8个cpu执行,从而效率高。python在设计之初就考虑到了要在主循环之中,同时只有一个线程执行。
2023-10-19 22:23:25
39
原创 python网络编程与并发并发编程#4
读写锁则允许多个线程或进程同时访问共享资源,但只有一个线程或进程可以进行写操作,以确保数据的一致性和完整性。进程锁是并发编程中非常重要的机制,它可以有效地保护共享资源,避免数据损坏和不一致的问题。我们在并发编程中使用生产者与消费者模型模式,能够解决大部分的并发问题,该模式通过平衡生产者线程与消费者线程的工作能力提高整体的数据处理速度。我们学过数据结构:链衣,表链衣,单链表,双链表,循环链表,栈,队列,树,二叉树,图等数据结构。在一个进程中,线程就是必须存在的,至少要有一个线程来执行任务。
2023-10-18 21:49:52
43
原创 python网络编程与并发编程#3
进程是指正在运行的一个程序。每个进程都有自己的内存空间、代码、数据和文件句柄等资源,进程之间相互独立,互不干扰,通过操作系统的调度,可以让多个进程在同一个计算机上同时运行。在操作系统中,进程是系统资源的分配单位,操作系统通过对进程的资源分配和管理来保证计算机系统的稳定性和安全性。可以并发执行,在一个进程中的多个线程是可以并发执行的,甚至可以在一个进程中执行所有的线程,不进程中的线程同样也可以同时并发执行。线程在统一进程中,可以共享资源,所有的线程都具有相同的id,意味着线程可以访所有进程中的内存资源。
2023-10-17 20:51:52
43
原创 python网络编程与并发编程#2
我们可以借助一个模块struct,他可以把我们需要发送的数据长度转化为固定长度的字节,这客户端每次接受消息之前先接受这个固定长度字节的内容,去确认有接受数据字节的大小,最终接受的数据达到一个值就停止,刚好可以刚好接受完整的数据了。粘包现象只存在于TCP协议中,表面上是因为TCP协议中的发送方和接受方缓存机制,实际上是不清楚发送方所发送数据的大小所导致的,所以我们需要在发送数据前,先使用send发送该字节流的长度,这种方式会放大网络延迟带来的性能损耗。基于网络类型的套接字名字家族:AF_INET。
2023-10-16 21:46:31
35
原创 网络编程与并发编程
什么是网络编程:我们需要编写一些基于网络传输的一些软件,而我们目前所学的都是基于本地的,不是基于网络的。我们的目的就是要让我们的项目写好之后给所有人使用,既然是所有人使用,那么就必须得把我们所写的项目上传至互联网,那么别人想使用我们的项目软件,那我们就必须开发一款客户端,然后让用户在自己的电脑上下载客户端来使用。下载完成后,还需要一个服务端,通过服务端检验后在进行注册登录等一系列的功能。client(客户端)——————网络传输——————服务端像这种的我们一般称这种架构为c/s架构。
2023-10-14 21:00:05
42
原创 python面向对象#4
在Python中,异常是指在程序执行过程中发生了错误或异常情况而导致程序无法正常运行。面向对象中的异常主要是指异常类,它们用于表示不同类型的异常情况,并提供了相应的处理方式。,我们可以使用try,except语句来处理。异常的组成:1.Traceback:追溯信息,可以定位异常所发生的位置。2.错误的数据类型:KeyError, TypeError, IndexError等,也可以使用万能的类型:Exception3. 错误的原因:通过原因我们可以快速的精准找到异常的原因从而解决问题。
2023-10-11 19:52:23
33
原创 python面向对象#3
_exit__则是当with语句执行完成时,触发__exit__, with语句可以用在多个地方,当出现with语句时,后面的对象必须使用__enter__和__exit__什么是组合:它不是一个新的技术栈,他是对象的另一种用法,一个对象拥有一个属性,该属性就是另一个对象。当出现with语句是,__enter__才能被触发,如果有返回值,则赋予给as声明的变量。内置方法有什么特点:双下划线开头的例如__init__。继承一般是is 什么是什么的情况下而组合是什么有什么的情况下。
2023-10-10 22:35:52
37
原创 python面向对象#2
在继承中,子类可以重写父类的方法,就像是继承了父类方法的一部分,但对于子类而言,重写的方法和父类的方法可能会有所不同,调用该方法的时候会根据实际子类类型调用子类的方法。1. 什么是继承:继承就是一种新建类的方式,新建出来的类我们称为新生类,或子类,被继承的就是父类或者叫基类,新建出来的子类可以继承父类的索引属性。在接口中,不同的类实现同一个接口,实现接口的类可以重写接口中的方法,但每个类对接口中方法的实现不尽相同,同样在调用接口方法时也会根据实际对象类型调用不同的实现。经典类:按照深度优先的查找顺序。
2023-10-09 21:09:46
70
1
原创 python面向对象
什么是对象:面向对象中的对象是指在程序中描述现实世界中的实体或概念的实体,它是类的一个实例。对象具有属性和行为,可以接收消息并执行相应的操作。在生活中:对象就是'特征'与'技能'的集合体在程序中:对象就是盛放'数据属性'和'功能'的容器例如,我们可以创建一个名为“汽车”的类,它有属性如“车牌号码”、“品牌”、“型号”等,行为如“加速”、“刹车”、“转弯”等。在程序中,我们可以创建多个“汽车”对象,每个对象都有自己的车牌号码、品牌、型号等属性,并且可以执行加速、刹车、转弯等行为。
2023-10-07 20:05:27
57
1
原创 python模块#4
通过logging模块,我们可以在程序运行时输出各种级别的日志,包括调试信息、错误信息、警告信息等,方便程序的调试和维护。除了上述例子中的基本用法外,logging模块还提供了一些高级用法,比如设置日志输出格式、将日志信息输出到文件、通过SMTP发送日志信息等,可以根据具体需求进行配置。2. 阿里云:http://mirrors.aliyun.com/pypi/simple/5.中科大:https://pypi.mirrors.ustc.edu.cn/simple/
2023-09-25 18:55:23
122
1
原创 python中的内置模块#3
pickle的使用方式跟json一模一样,json中有四个方法,pickle也是这四个方法,但是他与json的区别就是pickie可以将所有的数据类型序列化,但是只能在python中使用,而json能够序列化的数据类型:dict,list,tuple,int,float,pickie序列化之后的结果是二进制。算法:MD5, sha系列,sha1,sha128,sha256等。json序列化其实就是字符串,序列化就是把其他数据类型转化为json字符串的过程。不管输入加密数据有多长,得到的加密串结构是固定的。
2023-09-22 17:24:14
210
2
原创 python中的内置模块#2
random模块是Python中用于生成随机数的标准库。它包含了多种生成随机数的函数,如生成随机整数、随机浮点数、随机字符等等。
2023-09-21 16:32:03
95
原创 python中的内置模块
在Python中,一个模块是一个包含一组相关函数、变量和类的文件。模块可以被其他程序引用,以便在程序中使用它们。要使用模块,可以使用import语句将其引入到程序中。例如,要引入Python标准库中的math模块在python中的内置模块有:math:提供了一些基本的数学函数,如sin、cos、tan、sqrt等等。random:提供了一些随机数生成函数,如随机整数、随机小数、随机选择等。time:提供了一些与时间相关的函数,如获取当前时间、格式化时间、计时器等。
2023-09-20 20:14:23
688
1
原创 正则表达式及re模块
什么是正则表达式:正则表达式是一种描述文本模式的语言,它用于匹配、搜索和替换文本中的字符序列。例如,如果想要匹配一个包含反斜杠的字符串,可以使用正则表达式。在正则表达式中,量词用于指定一个模式可以出现的次数,他只会影响前一个字符(ab+)只能影响a,不能影响b。^[1-9]\d{13,16}[0-9x]$:意思为,只能是一到九开头的数字,后面的数字是13到16,之后0-9之间的数。组合在一起<.*>就是尽可能的匹配少的字符,.*?贪婪匹配是指在正则表达式中采用的一种匹配策略,即会尽可能地匹配更多的字符。
2023-09-17 20:37:32
175
1
原创 python模块
1. 什么是模块:在 Python 中,模块是包含 Python 定义和语句的文件。模块可以包含变量、类、函数等,这些都可以被其他 Python 程序引用。模块提供了解决命名空间冲突问题的方法,并且可以提高代码的可重用性。Python 自带了一些常用的模块,也可以自己编写模块并使用。模块可以通过import语句导入,然后使用其中的函数或变量。2. 为什么我们要使用模块:别人写好的一些功能,我们下载后使用它可以让我们的在项目中大幅度的提高开发效率。
2023-09-15 16:12:07
145
原创 python迭代器与生成器
1. 迭代器主要就是一个迭代取值,另外一种就是索引(下标)取值。##选择迭代对象2. 迭代取值与索引取值的区别迭代取值: 1 .迭代取值不可以重复取值。2. 可以在不使用索引(下标)取值下进行取值。索引取值 : 1 .索引取值可以重复取值。2. 索引取值(l1[0])必须要有容器。
2023-09-14 18:43:00
111
1
原创 python中的函数#5
可迭代对象:内置有__iter__方法的都可以称为是可迭代对象,内置:可以直接使用的可迭代对象有:str , list , dict, set, tuple 都是可迭代对象。它通常用于需要一个临时函数的场合,例如作为另一个函数的参数或返回值匿名函数可以像普通函数一样使用,但是它们没有名称,因此只能通过变量或参数传递它们。filter是Python内置的高阶函数之一,它的作用是过滤列表中的元素,返回一个由符合过滤条件的元素组成的新列表。1.语法错误:是绝对不允许的,只要是语法错误代码是绝对运行不了的。
2023-09-13 19:49:35
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人