首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

测试开发进阶(二十五)

痛点 代码冗余极其严重,不符合优秀测开风格 数据校验非常麻烦,且可复用性差 编码没有统一规范,杂乱无章感觉 写代码非常多,不够简洁 仅支持json格式传参,不支持form表单传参 仅能返回json...格式数据,其他类型不支持 列表页视图没有分页,过滤,排序功能 Django REST framework 在Django框架基础上,进行二次开发 用于构建Restful API 简称为DRF框架REST...添加 'rest_framework' INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes...修改 projects.serializer.ProjectSerializer id = serializers.IntegerField(label='ID', read_only=True)...增加 read_only=True,指定该字段只能进行序列化输出「只读」,不进行反序列化。

80030

DjangoRestFramework,序列化组件、视图组件

Field,它不根据用户提交获取值,而是从默认或可调用获取其。...一种常见使用场景就是在Model存在user_id作为外键,在用户提交时,不允许提交user_id,但user_id在定义Model时又是必须字段,这种情况下就可以使用HiddenField提供一个默认...等基础校验之外,还会会根据咱们写这个序列化组件设置字段中有read_only=True属性字段排除掉,这也是为什么我们在面写多对多和一对多字段时,如果字段名称和model表多对多或者一对多字段名称相同...,也就是说,如果我们将SerializerMethodFieldread_only改成False,那么在进行字段验证时候,这个字段就没有被排除,也就是说,必须传给我这个authors_list名字数据...,即便是这个字段名字和数据表字段名字相同,也是没有问题,只有在用户提交数据保存时候才会有问题,所以最好解决方式就是加read_only属性,并且改一下字段名字,不要和数据表这个字段名字相同

2.6K20

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

DRF核心当然不是知道视图类执行流程就可以了,DRF框架核心那就是 序列化器使用,如何使用序列化器实现 序列化、 反序列化,以及视图,这篇会介绍到~ 序列化器 什么是序列化和反序列化?...demo 在app中新建serializer.py,自定义类,继承DRF框架Serializer及其子类 在类写要序列化字段(序列化哪些就写哪些,不序列化不写) 使用序列化类,视图类中用,得到序列化类对象...,反序列化验证字段用 在对BookSerializer类实例化传入参数不知道传什么,由于我们没有写构造函数,去父类看需要什么参数传什么就可以了 使用浏览器测得时候一定要注册rest_framework...或者value,比如price可以自定义成price_down,通过返回来控制value 在序列化类写需要搭配get_字段方法,来自定制字段 方法二:在表模型(models.py)写 '''models.py...字段是从表模型映射过来,auto自增,不传也可以 # 自定制字段不传必须注册,在列表 fields = ['id', 'title', 'price', 'price_info

80910

drf序列化器之反序列化数据验证

如果是非字段错误,可以通过修改REST framework配置NON_FIELD_ERRORS_KEY来控制错误字典键名。...django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', # 把drf框架注册到django项目中...= serializers.字段类型(验证选项) # read_only=True,设置id为只读字段,当字段设置为read_onlyTrue,则当前字段只会在序列化阶段使用 id...validate, 参数data代表了所有字段数据,其实就是视图代码实例化序列化器对象时data参数 开发,类似 密码和确认密码,此时这2个字段,必须进行比较才能通过验证...trim_whitespace 是否截断空白字符 max_value 【数值】最小 min_value 【数值】最大 通用参数: 参数名称 说明 read_only 表明该字段仅用于序列化输出,默认

2.1K30

Django项目之Elasticsearch搜索引擎

framework中使用haystack进行封装(如果在Django中使用haystack,则安装django-haystack即可)。...=True) document=True 表名该字段是主要进行关键字查询字段 use_template=True 表示通过模板来指明索引由哪些模型类字段组成 5)在templates...}} {{ object.id }} 路径固定: templates/search/indexes/建立索引应用名/文件名.txt 通过skuname、caption、id来进行关键字索引查询...base_name='skus_search') urlpatterns += router.urls bug说明: 如果在配置完haystack并启动程序后,出现如下异常,是因为drf-haystack还没有适配最新版本...REST framework框架 importError: cannot import name '_get_count' 可以通过修改REST framework框架代码,补充_get_count函数定义即可

1.1K20

RESTframework_一

在前后端分离应用模式,后端仅返回前端所需数据,不再渲染HTML页面,不再控制前端效果. 在前后端分离应用模式,前端与后端耦合度相对较低....: 将JSON数据转化为Python数据 总结 开发REST API ,视图操作 将数据库序列化为前端所需要格式,并返回 将前端数据反序列化为模型类对象,并保存到数据库 REST framework...(label='ID', read_only=True) btitle = serializers.CharField(label='名称', max_length=20) bpub_date...(label='图书',read_only=True) # 2.字符串形式输出 # {'name': '乔峰', 'gender': True, 'comment': '降龙十八掌', 'book_id...': '降龙十八掌', 'book_id': 2, 'book': 'Book: 2-天龙八部'} # book = BookRelateField(read_only=True) 反序列化操作 验证

70920

测试开发进阶(二十九)

方法 两个类视图所对应url地址不一致 再次优化 优化思路:使用动作来触发,不是请求方法 from rest_framework import viewsets viewsets不再支持 get/post.../put/delete等请求方法,只支持action动作 但是 ViewSet类没有提供 get_object(), get_serializer等方法 继承 viewsets.GenericViewSet...第二个参数viewset为视图集「不要加as_view」 将自动生成路由添加到列表 from django.urls import path, includefrom projects import...参数用于指定该动作支持请求方法,默认为get detail用于指定该动作要处理是否为详情资源对象「url是否需要传递pk」 在 url.py添加 path('project/names/', views.ProjectsViewSet.as_view...=True, many=True) class Meta: model = Projects fields = ('id', 'interfaces_sets') 添加自定义

65310

django-rest-framewor

源码繁琐,多说无益,耐心细读官方文档: https://www.django-rest-framework.org/ 个人总结: REST是一种软件架构设计风格,不是标准,也不是具体技术实现,只是提供了一组设计原则和约束条件...DRF(Django RestFramework)是一套基于Django开发、帮助我们更好设计符合REST规范Web应用一个Django App,所以,本质上,它是一个Django App。...=32, read_only=True, source='publish.name') publish_city = serializers.CharField(max_length=32, read_only...返回结果 5 认证组件   cookie和session两种方式可以保存用户信息,这两种方式不同是cookie保存在客户端浏览器session保存在服务器,他们各有优缺点,配合起来使用,可将重要敏感信息存储在...,更新token   创建俩个model,(token可以存储在user表,建议存储在user表): from django.db import models # Create your models

1.6K10

python测试开发django-rest-framework-88.反序列化

前言 serializers.Serializer可以对modle模型字段序列化,并且必须写create和update两个方法。...用户在添加商品时候,需要把数据存到数据库,这个过程我们需要先校验是不是合法。 ?...对用户传入数据,我们需要先清洗下,因为用户可能会传一些数据库表里面没有的字段,这些我们不需要,于是可以用到 GoodsSerializer(data=request.data) data 用户传入参数...校验忽略某些字段read_only=True 如果在创建商品时候,有些字段我不想让用户去修改,比如 goods_status(商品状态),默认就是出售, ?...这里涉及到传入参数2个互相校验 # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class GoodsSerializer

63330
领券