drf数据验证+数据存储(代码片段)

jianhaozhou jianhaozhou     2023-02-02     693

关键词:

1.验证数据的自定义类

class BooksDRFt(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ‘__all__‘
    #要验证的字段
    author = serializers.CharField(required=False)
    #要验证的字段
    name = serializers.CharField(min_length=2, error_messages‘required‘: ‘不能为空‘, ‘min_length‘: ‘最短长度是二‘)
    
    #局部钩子
    def validate_name(self,value):
        response = ‘status‘:100,‘msg‘:‘成功‘
        res = models.Book.objects.filter(name=value)
        if res:
            raise exceptions.ValidationError(‘书名重复!‘)

        else:
            return value
    #全局钩子
    def validate(self, attrs):
        name = attrs.get(‘name‘)
        price = attrs.get(‘price‘)
        if str(name) == str(int(price)):
            raise exceptions.ValidationError(‘重复!‘)
        else:
            return attrs

? 注意:1 必须继承ModelSerializer

? 2.在视图函数中的使用

? 1 验证+存储数据

class Books(APIView):
    def post(self,request):
        book_res = common.BooksDRFt(data=request.data)
        if book_res.is_valid():
            book_res.save()
            return JsonResponse(book_res.data,safe=False)
        else:
            return JsonResponse(book_res.errors)

? 2 验证+修改数据

class BooksUpdateCreate(APIView):
    def put(self,request,id):
        book = models.Book.objects.filter(id=id).first()
        book_res = common.BooksDRFt(data=request.data,instance=book)
        if book_res.is_valid():
            book_res.save()
            return JsonResponse(book_res.data,safe=False)
        else:
            return JsonResponse(book_res.errors)

drf框架序列化组件——字段验证(代码片段)

...义校验字段的钩子方法  validate_字段2.获取字段的数据3.验证不通过,抛出异常  raiseserializers.ValidationError("校验不通过的说明")4.验证通过,直接返回字段数据#对title字段进行验证defvalidate_title(self,value):#判断value是否... 查看详情

drfserializer使用(代码片段)

...后端不分离的项目中,可以使用Django自带的forms组件进行数据验证,也可以使用Django自带的序列化组件对模型表数据进行序列化。  那么在前后端分离的项目中,drf也提供了数据验证与序列化,相比于Django原生的序列化它更加... 查看详情

drf高级二序列化器(代码片段)

...序列化。正序列化:models对象通过序列花器返回格式化的数据。反序列化:将前端提交的数据通过序列化,经过数据校验后,变成models对象保存到数据库。REST框架中的序列化程序的工作方式与Django和类非常相似。FormModelFormSeriali... 查看详情

restframework(drf)进阶篇genericapiview-viewset类(代码片段)

1.0认识GenericAPIview类1.0定义数据模型2.0定义序列化器3.0修改settings.py配置文件4.0同步数据库5.0编写视图6.0编写路由7.0插入数据8.0验证数据1.1定义数据模型1.2定义序列化器1.3修改settings.py配置文件1.4同步数据库python3manage.pymakemigrations... 查看详情

php存储数据(验证和格式化)(代码片段)

查看详情

drf概述(代码片段)

DRF概述一.REST1.什么是编程?数据结构和算法的结合2.什么是REST?回顾曾经做过的图书管理系统,我们是这样设计URL的:  127.0.0.1:9001/books/  127.0.0.1:9001/get_all_books/访问所有的数据127.0.0.1:9001/books/id/127.0.0.1:9001/books/id?method=get访问单... 查看详情

drf的分页(代码片段)

...说大家都知道,大家写项目的时候也是一定会用的,我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来,这样会给内存造成特别大的压力,有可能还会内存溢出,所以我们希望一点一... 查看详情

drf的分页(代码片段)

...说大家都知道,大家写项目的时候也是一定会用的,我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来,这样会给内存造成特别大的压力,有可能还会内存溢出,所以我们希望一点一... 查看详情

drf-解析器组件(代码片段)

...angoRestFramework帮助我们实现了处理application/json协议请求的数据,另外,我们也提到,如果不使用DRF,直接从request.body里面拿到原始的客户端请求的字节数据,经过decode,然后json反序列化之后,也可以得到一个Python字典类型的数... 查看详情

drf初识(代码片段)

...了提交请求参数的请求方式,访问其可以获取响应的反馈数据的url链接;url链接:请求方法+请求参数+响应数据结果;drf框架安装#使用drf时,要在settings中注册pipinstalldjangorestframeworkrestful接口规范URL设计数据的安全保障url链接一... 查看详情

drf序列化组件(代码片段)

...urce和serializers.SerializerMethodField()的用法1.3.2反序列化1.3.2.1数据验证1)validate_字段名2)validate3)validators1.3.2.2反序列化-保存 查看详情

restframework(drf)进阶篇genericapiview-viewset类(代码片段)

1.0认识GenericAPIview类1.0定义数据模型2.0定义序列化器3.0修改settings.py配置文件4.0同步数据库5.0编写视图6.0编写路由7.0插入数据8.0验证数据1.1定义数据模型1.2定义序列化器1.3修改settings.py配置文件1.4同步数据库python3manage.pymakemigrations... 查看详情

drf的序列化器(代码片段)

...准输入流res=sys.stdin.readline()print(res)#标准错误流:将括号内数据作为错误输出sys.srderr.write('abc')sys.stderr.write('xyz)注意:每个流之间为异步提交,流内为同步提交.JSON文件格式JSON值可以是:数字(整数或浮点数)字符串(在双... 查看详情

drf缓存(代码片段)

...的界面展示都是通过客户端请求服务端,服务端再去请求数据库,然后将请求到的数据渲染后返回给客户端。用户每次访问页面都需要去请求数据库,如果同时有多个人访问的话,对于我们的数据库的压力是相当大的。所以我们... 查看详情

drf--分页(代码片段)

DRF分页组件为什么要使用分页我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输过程中耗... 查看详情

(生鲜项目)17.drf实现发送短信验证码功能(代码片段)

...分析由于之前在设计model的时候,我们已经决定对code进行数据库保存,所以这里我们应该使用 mixins.CreateModelMixin同时,用户发过来的手机号码,我们在后端应该执行自己的验证,包括手机号码是否被注册手机号码是否合法 [在sett... 查看详情

drf的序列化(代码片段)

...我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式。那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到的数据进行序列化。接下来我们看下django序列化... 查看详情

model验证(代码片段)

上节说了Asp.netMVC中Model的绑定,本节讲解下Model绑定时的数据验证。数据结构Model验证中的错误信息怎样存储?怎样传递给View?ModelError类型每条错误信息,ModelErrorCollection错误提示的集合,ModelState为存储错误验证和数据源。其在... 查看详情