随笔分类 -  DRF框架

摘要:ModelSerializer不能和APIView结合使用,会导致序列化器接收不到数据。 阅读全文
posted @ 2020-02-29 11:25 老王同鞋 阅读(164) 评论(0) 推荐(0)
摘要:先进入Nginx的配置文件中,进行配置。 Nginx配置文件夹的区别: cd /etc/nginx/conf.d/ 创建.conf后缀的文件 /etc/nginx/sites-enabled 创建任意类型文件 cd /etc/nginx/conf.d/sudo vim meiduo_mis.conf 阅读全文
posted @ 2020-02-21 11:46 老王同鞋 阅读(460) 评论(0) 推荐(0)
摘要:class CategoryView(ListAPIView): '''展示商品分类信息API''' # 因为前段是通过路径参数进行传参,回发送三次请求分别来获取三种商品分类数据 # 设置查询集 # 重写get_queryset,根据参数指定数据集 def get_queryset(self): p 阅读全文
posted @ 2020-02-17 20:22 老王同鞋 阅读(617) 评论(0) 推荐(0)
摘要:一共分为四层关系。 第一层:视图 用来接收前端传递的参数,并实现业务逻辑相关的数据处理,并将数据通过创建序列化器对象的形式传递给序列化器。 第二层:序列化器 接收前端传递的数据,并将数据进行序列化操作,然后传递给模型。 第三层:模型 接收序列化器传递的数据,将序列化器传递的数据转换成模型数据,并将数 阅读全文
posted @ 2020-02-17 11:34 老王同鞋 阅读(268) 评论(0) 推荐(0)
摘要:我们,都知道,DRF框架是一款高度封装的框架。 我们可以通过重写一些方法来实现自定义的功能。 今天,就来说说在视图中重写和序列化器中重写方法的区别。 在视图中重写方法: 接收请求,处理数据(业务逻辑),最后响应JSON数据。 在序列化器中重写方法: 实现和Model的交互,主要实现对数据库的操作。 阅读全文
posted @ 2020-02-16 20:14 老王同鞋 阅读(470) 评论(0) 推荐(0)
摘要:在项目中,我们多需要自定义分页器。 代码实现: class PageNum(PageNumberPagination): '''自定义分页器''' # 每页显示个数 page_size = 10 page_size_query_param = 'pagesize' # 每页最多显示个数 max_pa 阅读全文
posted @ 2020-02-14 19:17 老王同鞋 阅读(593) 评论(1) 推荐(1)
摘要:在DRF项目的开发中,我们通过直接使用序列化器保存的用户信息时,用户的密码是被明文保存到数据库中。 代码实现: def create(self, validated_data): '''重写create方法实现,将密码加密后保存''' # 将密码加密后保存 user = User.objects.c 阅读全文
posted @ 2020-02-14 19:11 老王同鞋 阅读(1174) 评论(0) 推荐(0)
摘要:在REST后台开发中,我们需要通过业务逻辑来选择数据集或者序列化器。 选择数据集: # 重写get_queryset实现通过业务逻辑选择指定数据集 def get_queryset(self): ''' 通过前段传递过来的keyword选择指定数据集 :return: ''' # 获取keyword 阅读全文
posted @ 2020-02-14 19:07 老王同鞋 阅读(252) 评论(0) 推荐(0)
摘要:在DRF项目中,我们可以通过重写指定的方法,来自定义返回的数据。 1. 重写jwt_response_payload_handler方法 def jwt_response_payload_handler(token, user=None, request=None): """ 自定义jwt认证成功返 阅读全文
posted @ 2020-02-13 19:42 老王同鞋 阅读(1035) 评论(0) 推荐(0)
摘要:什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息, 阅读全文
posted @ 2020-02-12 18:39 老王同鞋 阅读(741) 评论(0) 推荐(0)
摘要:DRF项目,是一个前后端分离的Web框架。 本项目中,我们前端采用的是VUE框架。 前后端分离的情况就会出现一个问题,前端的Ajax请求无法请求到后端API(接口)。 那么,为什么会出现这种问题呢? 因为,浏览器的同源策略不允许,不同源的脚本(网站代码Ajax)在没有经过明确授权的情况下,去读写对方 阅读全文
posted @ 2020-02-12 18:31 老王同鞋 阅读(345) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-02-09 18:14 老王同鞋 阅读(171) 评论(0) 推荐(0)
摘要:对于视图集,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。 REST framework提供了两个router SimpleRouter DefaultRouter 1. 使用方法: 1. 创建路由对象 # 定义一个路由器对象 阅读全文
posted @ 2020-02-08 19:02 老王同鞋 阅读(564) 评论(0) 推荐(0)
摘要:DRF框架中,一共有三个视图集类,我们这里只说明ModelViewSet一个。 ModelViewSet是封装度最高的DRF的视图类。包含了怎删改查中的所有接口操作。 它继承自GenericViewSet、ListModelMixin、RetrieveModelMixin、CreateModelMi 阅读全文
posted @ 2020-02-08 18:56 老王同鞋 阅读(3756) 评论(0) 推荐(2)
摘要:所谓,视图子类就是继承自视图扩展类和GenericAPIView类的类。 他们,帮我们将请求方法封装好了,我们只需要,使用视图继承这些子类即可使用其中的方法。 1) CreateAPIView 提供 post 方法 继承自: GenericAPIView、CreateModelMixin 2)Lis 阅读全文
posted @ 2020-02-08 18:40 老王同鞋 阅读(203) 评论(0) 推荐(0)
摘要:这里呢,我将为大家介绍一下DRF框架,为我们提供的试图扩展类的使用方法即作用。 在使用视图扩展类时,需要将mixins模块导入到view文件中。 from rest_framework import mixins 并且,在使用视图扩展类时,必须结合GenericAPIView基类一起使用。 所谓,视 阅读全文
posted @ 2020-02-08 18:35 老王同鞋 阅读(254) 评论(0) 推荐(0)
摘要:Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行 1. DRF框架中的Request和Response REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是 阅读全文
posted @ 2020-02-08 11:48 老王同鞋 阅读(625) 评论(1) 推荐(1)
摘要:ModelSerializer是Serializer的子类,序列化和反序列化跟Serializer一样。 ModelSerializer与常规的Serializer相同,但提供了: 基于模型类自动生成一系列字段 基于模型类自动为Serializer生成validators,比如unique_toge 阅读全文
posted @ 2020-02-07 18:57 老王同鞋 阅读(366) 评论(0) 推荐(1)
摘要:昨天,我们完成了Serializer序列化器的反序列化操作,那么今天我们就来学习Serializer序列化器的最后一点知识,反序列化操作。 首先,我们定要明确什么是反序列化操作? 反序列化操作:JOSN数据 --> 字典数据 -->验证通过的字典数据 --> 模型数据 我们在进行反序列化操作时,首先 阅读全文
posted @ 2020-02-07 14:36 老王同鞋 阅读(730) 评论(0) 推荐(0)
摘要:在DRF框架中,有两种序列化器,一种是Serializer,另一种是ModelSerializer. 今天,我们就先来学习一下Serializer序列化器。 使用Serializer序列化器的开发步骤: 1. 定义Serializer序列化器 首先,我们要在子应用中,创建见一个serializers 阅读全文
posted @ 2020-02-06 19:20 老王同鞋 阅读(996) 评论(0) 推荐(1)