摘要: message组件可以某次请求的某些数据暂存起来,当后面请求需要的时候可以再次使用,同时删除这些存起来的数据 相对于cookie,message将数据存在server端,在需要使用的时候,再将数据拿走 1.配置 message组件是Django内置的功能,只要在配置文件中设置如下Django默认是开 阅读全文
posted @ 2022-11-17 10:45 阿明明 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 我们将固定数据存储在mysql中,通过ORM进行数据库的操作,但是对于一些临时数据,如验证码等,我们希望存储在缓存中,常用的缓存就是redis,django也是支持redis缓存配置的,配置如下 CACHES = { "default": { "BACKEND": "django_redis.cac 阅读全文
posted @ 2022-11-17 10:37 阿明明 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 1.Form form组件的主要作用: 帮助我们生成HTML标签 + 携带数据 数据校验,对用户提交的数据进行格式校验 1.1 简单使用 cleaned_data():校验合格的数据 errors:校验错误的数据,以字段为键,错误为值 is_valid():校验字段是否全部正确 定义模型类如下 cl 阅读全文
posted @ 2022-11-17 10:32 阿明明 阅读(32) 评论(0) 推荐(0) 编辑
摘要: Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库的操作,通过定义模型类来完成对数据库中表的操作 O:Object,也就是类对象的意思 R:Relation,关系数据库中表的意思 M:Mapping:映射 模型类:映射的是sql语句中的table表 类对象:映射表中的某一行数据 类成 阅读全文
posted @ 2022-11-17 09:57 阿明明 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 在django中,模板引擎(DTL)是一种可以让开发者将服务端数据填充到html页面中的完成渲染的技术 模板引擎的原理分为以下三步: 在项目配置文件中指定保存模板文件的的模板目录,一般设置在项目根目录或者子应用目录下 在模板目录下创建对应的模板文件 在视图函数中通过render函数绑定模板文件和需要 阅读全文
posted @ 2022-11-16 15:21 阿明明 阅读(56) 评论(0) 推荐(0) 编辑
摘要: django的视图主要有两种,分别是函数视图和类视图,也就是FBV和CBV,先学习FBV 1.请求方式 常见的请求方式如下 GET:获取数据 POST:添加数据 DELETE:删除数据 PUT:更新数据 PATCH 局部更新 ... 求方式本质上没什么不同,只是认为的区分不同的请求做不同的事情 2. 阅读全文
posted @ 2022-11-16 14:39 阿明明 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 路由就是一种映射关系,将客户端的url请求和应用程序的视图进行绑定 在django中所有的路由最终都被保存到一个变量 urlpatterns., urlpatterns必须声明在主应用下的urls.py总路由中。这是由配置文件settings设置的。 1.路由 1.1 传统路由 from djang 阅读全文
posted @ 2022-11-16 13:58 阿明明 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 1.简介 web应用程序的本质 接收并解析HTTP请求 处理本次请求,完成业务上的处理 构造并返回响应HTTP响应 什么是web框架呢? web框架用于搭建web应用程序,免去不同web应用相同代码的重复 Django是通过python实现的web框架,是开源的,正式版本发布于2008年,常见的we 阅读全文
posted @ 2022-11-16 13:36 阿明明 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 之前使用 request.data 获取请求体中的数据。 这个 reqeust.data 的数据怎么来的呢?其实在drf内部是由解析器,根据请求者传入的数据格式 + 请求头来进行处理。 解析器可以设置多个,默认解析器:JSONParser,FormParser,MultiPartParse 可以在全 阅读全文
posted @ 2022-11-16 10:47 阿明明 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 在之前进行drf开发时,对于路由我们一般进行两种配置: 视图继承APIView from django.urls import path from app01 import views urlpatterns = [ path('api/users/', views.UserView.as_view 阅读全文
posted @ 2022-11-16 10:39 阿明明 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 如果数据很多,我们不能将所有的数据一下传递给前端,通常的做法是通过分页进行展示 在drf中为我们提供了一些分页的相关类 BasePagination PageNumberPagination(BasePagination) # 支持 /accounts/?page=4&page_size=100 格 阅读全文
posted @ 2022-11-16 10:36 阿明明 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 1.自定义filter 继承BaseFilterBackend 定义filter_queryset函数 注意:只有在继承了GenericAPIView的视图类中才生效 代码 from app01.models import UserInfo from rest_framework import se 阅读全文
posted @ 2022-11-16 10:24 阿明明 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 在视图中,如果参数有request,我们可以直接使用,如果参数没有,则可以通过self.request获取 1.APIView 我们之前使用的基本上都是APIView,给我们提供了免除csrf验证,请求封装,版本控制,认证,权限和限流的功能,以下是源码展示 2.GenericAPIView Gene 阅读全文
posted @ 2022-11-16 10:07 阿明明 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 在序列化类中,如果想使用request,则可以通过self.context['request']获取 序列化器的主要由两大功能 - 对请求的数据进行校验(底层调用的是Django的Form和ModelForm)- 对数据库查询的数据进行序列化 1.数据的校验 注意自定义的钩子函数中的参数value, 阅读全文
posted @ 2022-11-15 13:46 阿明明 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 限流就是限制用户的访问频率,如每分钟的操作的次数不超过3次等 对于匿名用户,使用用户IP作为唯一标识 对于登录用户,则使用用户的ID作为唯一标识 1.限流的机制 DRF中维护了一个缓存,以用户的唯一标识作为键,一个列表为值,存放着当前用户访问的时间戳。 当用户再次请求的时候,会根据用户唯一标识去缓存 阅读全文
posted @ 2022-11-15 10:57 阿明明 阅读(102) 评论(0) 推荐(0) 编辑