首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django-DRF用法】多年积累md笔记,第(4)篇:Django-DRF反序列化详解

本文从分析现在流行前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做最核心工作,然后介绍Django...验证使用序列化器进行反序列化时,需要对数据进行验证后,才能验证成功数据或保存模型类对象。反序列化数据前,必须调用is_valid()方法进行验证,验证成功返回True,否则返回False。...如果是非字段错误,可以通过修改REST framework配置NON_FIELD_ERRORS_KEY来控制错误字典键名。验证成功,可以通过序列化器对象validated_data属性数据。...serializers.ValidationError,可以通过传递raise_exception=True参数开启,REST framework接收到此异常,会向前端返回HTTP 400 Bad Request...fields 指明为模型哪些字段生成我们可以python manage.py shell查看自动生成BookInfoSerializer具体实现>>> from booktest.serializers

18720

DRF框架学习(二)

把其他格式数据转换为程序数据结构类型,这个过程叫做反序列化过程。 例:将前端传递数据保存模型对象过程,叫做反序列化过程。...通常简称为DRF框架REST framework。 DRF框架是建立Django框架基础之上,由Tom Christie大牛二次开发开源项目。...Django框架学习创建demo工程,settings.pyINSTALLED_APPS添加’rest_framework’。...3.2见识DRF魅力 我们仍以在学习Django框架时使用图书英雄为案例,使用Django REST framework快速实现图书REST API。 3.2.1....raise serializers.ValidationError("图书不是关于Django") return value 然后字段添加validators选项参数,写一个列表,将定义校验函数名放进去

4.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Django-DRF笔记】使用md笔记0基础到高手. 第(5)篇:Django-DRF序列化和反序列化

定义方法Django REST frameworkSerializer使用类来定义,须继承自rest_framework.serializers.Serializer。...序列化使用我们django shell来学习序列化器使用。...验证使用序列化器进行反序列化时,需要对数据进行验证后,才能验证成功数据或保存模型类对象。反序列化数据前,必须调用 is_valid() 方法进行验证,验证成功返回True,否则返回False。...如果是非字段错误,可以通过修改REST framework配置 NON_FIELD_ERRORS_KEY 来控制错误字典键名。...serializers.ValidationError,可以通过传递 raise_exception=True 参数开启,REST framework接收到此异常,会向前端返回HTTP 400 Bad

22010

Django+Vue开发生鲜电商平台之7.用户登录和注册功能

身份验证方案始终定义为类列表,DRF框架尝试对列表每个类进行身份验证,并使用成功进行身份验证第一个类返回值设置request.user和request.auth。...之前已经测试过,传统前后端分离项目中,前端登录,后端生成对应token信息并保存到session或数据库。但是如果存在XSS漏洞,就可能存在cookie泄漏、信息不安全问题。...并不需要保存到用户数据表,因此验证之后需要删除,validate(attrs)方法实现即可,同时因为人为设定前端传递回来手机号数据变量名为username而非mobile,因此需要在validate...(attrs)方法为attrs变量增加键为mobile数据,并且要修改UserProfile模型mobile字段允许为空,修改如下: class UserProfile(AbstractUser)...其中一类信号是模型信号,django.db.models.signals模块定义了模型系统发送一组信号,对模型进行操作后,Django会发出全局信号,捕捉到之后可以加入需要业务逻辑,具体包括pre_init

4.2K20

(项目)生鲜超市(六)

drf返回token值会保存到数据库并与用户进行关联: ?   然后客户端需要进行身份验证,令牌密钥包含在 Authorization HTTP header 。...' 6 ) 7 }   drftoken也有很大缺点: token信息是保存在数据库,如果是一个分布式系统,就比较麻烦 token永久有效,没有过期时间 2、json web token...方式完成用户认证(JWT)   虚拟环境pip install djangorestframework-jwt   将settingsREST_FRAMEWORKTokenAuthentication...jwt接口默认采用是用户名和密码登录验证,如果用手机登录的话,就会验证失败,所以我们需要自定义一个用户验证,users/view.py编写: 1 from django.shortcuts import...添加密码字段: 1 fields = ('username', 'code', 'mobile', 'password')   需要注意是密码不能明文显示,需要加密保存, 这是重载Create方法

1.7K20

6.寻光集后台管理系统-用户管理(注册视图)

django中视图本质上就是个函数,接受用户传入请求,返回对应响应视图中处理业务逻辑。django约定将视图放在views.py文件。这个文件应放在项目或者应用目录。...基于类视图,换了一种写法,不能替代函数视图,有一些优势: 用特定方法去管理http方法(get post) 使用面向对象技术,可以将代码分解成可重用组件 所以后续大部分会采用类视图方式编写代码...这个创建是个抽象方法,所以需要我们去实现它 我们users.serializers.UserRegisterSerializer.create实现了它 def create(self, validated_data...一旦其中一个url模式匹配,django将导入并调用给定视图。 如果没有匹配,或者在此过程引发任何异常,django调用错误视图。...注册路由 根路由 根路由backend/LightSeeking/urls.py添加 path('users/', include('users.urls')), 表示前端可以使用http://IP

71520

经历了源码痛苦,掌握DRF核心序列化器

序列化 序列化demo 字段类型 字段参数 序列化自定制返回字段 方法一:序列化类(serializers.py)方法二:模型(models.py)写 反序列化 反序列化demo 反序列化之局部和全局钩子...),序列化器可以把字典转换成模型存到数据库 存数据库需要校验,反序列化就可以帮我们完成数据校验功能 通俗理解为: 响应给前端内容需要序列化(给前端看),存数据库数据就反序列化; 序列化:模型对象...demo app中新建serializer.py,自定义类,继承DRF框架Serializer及其子类 写要序列化字段(序列化哪些就写哪些,不序列化不写) 使用序列化类,视图类中用,得到序列化类对象...---》只能看到name # 反序列化,前端需要什么过name,price,author都 序列化自定制返回字段 如果我们想自定制序列化返回字段样式,可以使用,有两种方法 方法一:序列化类...value 序列化类写需要搭配get_字段方法,来自定制字段 方法二:模型(models.py)写 '''models.py''' from django.db import models

77310

Flask框架在Python面试应用与实战

版本控制:讨论DRF实现API版本控制方法,如URL路径版本、请求头版本等。...异常处理:介绍如何使用DRF异常体系(如PermissionDenied、NotAuthenticated、ValidationError等)处理错误情况,并自定义异常响应。...二、易错点与避免策略序列化器验证遗漏:确保序列化器充分定义验证规则,使用validate_方法对关联字段、自定义逻辑进行验证,防止脏数据进入数据库。...:项目中统一响应格式,包括状态码、数据结构、错误消息等,遵循RESTful原则,提升API易用性和一致性。...REST framework关键知识点、规避常见错误,并通过实战项目积累经验,将有助于你Python面试展现优秀API开发技能,从容应对DRF相关问题挑战。

9410

Django REST framework 来实现一次性验证码(OTP)

今天讲一下如何用 Django REST framework[1](DRF) 来实现 OTP,阅读本文需要一定 DRF 基础知识。...('请一分钟后再次发送') return email 3、发送验证码 发送验证码,其实就是生成验证码并保存过程,借助于 Django REST framework 框架 GenericViewSet...= code: raise serializers.ValidationError('验证码错误') # 不用将code返回到数据库,只是做验证...最后的话 一次性验证码(OTP)逻辑简单,需要思考是如何在 DRF 框架填空,填在哪里?...这其实需要了解 DRF ModelSerializer 类和 ViewSet 类之前关系,调用关系上,ViewSet 类调用 ModelSerializer 来实现字段验证和数据保存及序列化,

1.6K20

django-rest-framework框架学习

django很著名一个框架django-rest-framework,帮我们减少了很多工作量,尤其序列化与反序列化成我们需要格式帮了我们省了很多事 在这里就记录一下个人学习过程 django-rest-framework...实现一组api基本流程 models.py创建自己需要数据模型 创建serializers.py在其中写出适合serializer类,能够正确序列化与反序列化 views.py写出合适...api类,只需要继承rest_frameworkgenerics某个类,重写我们需要方法实现合适逻辑即可 urls.py配置所需要url 一组apidemo 创建一个model 创建好...是多少, serializer.data是对模型序列化成字典,如果想拼成需要格式,需要提前构造合适字典,在用Response()方法帮我们序列化成json类型 urls自定义资源url urls.py...上述环境ubuntu16.04 lts django1.9 djangorestframework3.6.2测试成功 上述文字皆为个人看法,如有错误或建议请及时联系我

1.2K10
领券