- 博客(24)
- 收藏
- 关注
原创 多方式登陆
因为我们使用的是auth的user表,只能传用户名密码进行校验,但是正常项目使用手机号、邮箱+密码也能进行校验,包括有的还需要人脸进行校验,我们现在就需要自己定制登陆接口。首先需要扩写auth的user表,加入phone字段。如果之前已经迁移过auth的user表,只能删除数据库及删除迁移记录(很麻烦),所以在写项目时就要确定好要写的字段和表。
2024-05-06 21:29:01
152
原创 simple-jwt配置文件
在我们上面看到的签发阶段登陆时,它返回给我们两个token,首先需要在django的settings 里面注册。这涉及到双token认证,想了解就去搜......因为从本质上来说它们都是django上的app.
2024-05-06 21:27:29
190
原创 simple-jwt使用
登录签发默认使用auth下的user表,想要写它之前,应该先考虑user表中需不需要添加其它字段,不然中途加字段会很麻烦的。在csdn里面找了一下解决方法就是不用自动生成路由,这样就可以顺利进行了,因为时间有点不够先不考虑是什么错误导致的了。我们做一个接口,要让它只有通过认证才能进入。
2024-05-06 21:26:33
497
原创 drf之分页
在查询所有中,后期我们需要用到分类,分类和排序、过滤并不冲突分页顾名思义,就是在一个页面,按照几条数据一页,然后一页一页分开,这样便于查看数据,也让页面显得不难看,也好用。分页的使用与排序过滤一样,需要先写一个类,继承分页类,定制类属性,然后在视图类中配置。前提,继承pagination有三种分页方式CursorPagination, LimitOffsetPagination, PageNumberPagination。但是用分页方式只能用一种。
2024-04-24 15:27:01
449
原创 drf之过滤
自定义过滤类,首先根据规范,创建一个过滤类的.py文件,创建一个类继承BaseFilterBackend,重写filter_queryset方法取出想要过滤的值然后将过滤的值做对比,返回出去。视图层进行调用。filterset_fields=[过滤对象]return Response('所有数据')在filter_backends中,它里面可以放多个过滤或排序,它会从左往右依次运行。
2024-04-24 15:26:07
442
原创 drf之排序
如果想要倒叙就在排序对象前加上负号就行。ordering=-排序对象。想要定制它的返回格式,就要重写这个接口,重写接口还想能排序就必须要有。排序必须是在查询所有的接口里使用的,那么该如何排序呢?ordering=排序对象 进行排序。首先先创建一个查询所有的接口。只要有这个就能生效。
2024-04-24 15:25:30
480
原创 drf之频率
频率控制与认证、权限一样,也是继承类,重写然后到视图层使用。频率控制顾名思义就是管理点击频率的,防止有人恶意攻击网站,当用户点击次数过高就是限制访问。
2024-04-24 15:24:55
445
原创 drf之权限
这是重写的权限类,首先当然是继承BasePermission,然后request.user.user_type取出对应的user_type值,因为我想让我写了一些接口只让超级管理员使用,所以我设定了超级管理员的user_type为3。我在视图层随便写了个接口,然后校验权限,注意⚠️:因为在上面认证里面我设置了全局配置,所以需要先登录才能进入,当然,也必须要登录,因为不登录它获取不到你的user_type的值,还有,记得加token。与认证一样,同样创建一个py文件,负责放校验权限的类。
2024-04-24 15:24:23
407
原创 drf之认证
然后重写认证类,先从用户发送的请求头中取出用户的token,然后与数据库中的token进行校验,判断是否登录,然后返回结果,在views.py中只需要导入认证类,输入。很简单,就是把drf里面的源码复制到自己的settings文件里,然后加上重写认证类的位置。前提条件已经准备好了,那就开始介绍我们的认证类:BaseAuthentication。在上面的视图及路由组件中,我们学会了更快地创建我们想要的接口和自动生成路由。根据规范,我们应先创建一个py文件,
2024-04-24 15:23:34
189
原创 Response
REST framework提供了一个响应类Response,使用该类构造响应对象时,响应的具体数据内容会被转换(render渲染)成符合前端需求的类型。REST framework提供了Renderer 渲染器,用来根据请求头中的Accept(接收数据类型声明)来自动转换响应数据到对应格式。如果前端请求中未进行Accept声明,则会采用默认方式处理响应数据,我们可以通过配置来修改默认响应格式。可以在rest_framework.settings查找所有的drf默认配置项。
2024-04-24 15:17:37
350
原创 Request类的对象
request.data 返回解析之后的请求体数据。request.query_params与Django标准的request.GET相同,只是更换了更正确的名称而已。
2024-04-24 15:16:42
137
1
原创 多表序列化与反序列化
首先准备几张表,以图书为例,创建图书表,作者表,出版社表和第三张关系表。然后创建一个serializer.py文件,目的就是写类,继承serializer。仅序列化需要在与class Meta同级下额外添加字段,而class Meta相当于drf自动帮你写好了那些基本字段。在之前写序列化类,没有显示指明跟哪个表一一对应,ModelSerializer可以和表做一一对应关系。source是一个序列化器的字段选项,用于指定序列化器中字段的源。方法一:在表模型中写方法,然后在序列化类中做映射。
2024-04-22 15:01:04
298
原创 APIView
我们在学APIView之前,先做一个小练习:创建一个图书表,里面含有书名,价格及出版社名称,然后做出它的增删改查开放接口再用postman进行操作。首先创建Books表:然后创建路由,开放接口,做出它的增删改查。app01路由:admin路由:这样,关于这个表的增删改查就做好了。
2024-04-22 14:55:20
380
原创 API接口引入
在学完以上的django架构后,我们做了一个项目:BBS,这是一个前后端混合的项目。那么,什么叫前后端混合呢,我认为前后端混合就是前端和后端相结合的项目,彼此分不开。那么,我们现在就要学前后端分离了,它就是通过后端提供的API接口,来实施前后端分离。意思就是,我们后端只需要做出一个个API接口,通过和前端进行交互。这样的好处就是允许不同的软件系统进行交互。🙋♀️🌰:如果说我写了一个登录用的API,我们只需要开放接口,浏览器端、客户端都可以使用接口,这大大提高了开发的效率。
2024-04-22 14:52:17
398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人