首页
学习
活动
专区
圈层
工具
发布

Python进阶40-drf框架(二)

sex为选填字段 # 五个字段都必须提供完成的校验规则 # 局部钩子:validate_要校验的字段名(self, 当前要校验字段的值) # 校验规则:校验通过返回原值,校验失败...,如果某些字段不入库,可以将值取出校验 # # 4)重写create方法,完成校验通过的数据入库工作,得到新增的对象 """ 1、解析模块:全局局部配置 REST_FRAMEWORK...字段,不需要返回的就不用设置了 2)设置方法字段,字段名可以随意,字段值有 get_字段名 提供,来完成一些需要处理在返回的数据 view: 1)从数据库中将要序列化给前台的...', 'price')  显示所有字段 from rest_framework.serializers import ModelSerializer from . import models class...'is_delete','create_time')  自动深度 from rest_framework.serializers import ModelSerializer from . import

2.4K20

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

和POST请求的接口写法,下面我们来完成PUT、DELETE、GET查看单条数据的几个接口。...POST接口的url url(r'^books/$', views.BookView.as_view(),), #别忘了$符号结尾 #PUT、DELETE、GET请求接口 url...,大家的处理数据的逻辑都差不多啊,而且你会发现,这么多表,我每个表的GET、PUT、DELETE、POST操作其实都差不多,基本上就两个地方再发生变化,这里我们称为两个变量。...销毁(删除) # RetrieveModelMixin 获取单条数据 # 我们自己提炼出,说,每个表的操作基本都是上面的get、post、delete、put操作,所以我们想将这几个方法提炼出来,将来供其他类来继承使用...但是你看,我们上面只是写了一个publish表的操作,咱们还有好多其他表呢,他们的操作是不是也是GET、POST、DELETE、PUT等操作啊,所以你想想有没有优化的地方 ###############

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DjangoRESTframework(补充)

    验证失败,可以通过序列化器对象的 errors 属性获取错误信息,返回一个字典, 包含字段和字段的错误,若是非字段错误,可以通过修改 REST framework 配置中的 NON_FIElD_ERRORS_KEY...的', code='invalid')]} REST framework 提供的 validators UniqueValidator 单字段唯一 from rest_framework.validators...中的 request.POST 包含了解析之后的文件和非文件数据 包含了对POST、PUT、PATCH请求方式解析后的数据 利用了REST framework的parsers解析器,不仅支持表单类型数据...两个基类 1) APIView rest_framework.views.APIView APIView是REST framework提供的所有视图的基类,继承自Django的View父类...APIView与View的不同之处在于: 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework

    2.9K30

    Django实践-10RESTful架构和DRF入门

    解释一下什么是RESTful: RESTful:URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。RESTful 是典型的基于HTTP的协议。...RESTful架构是一种基于HTTP协议的Web应用程序设计风格,其特点包括使用HTTP动词(GET、POST、PUT、DELETE等)表示资源操作、使用URI标识资源、通过HTTP状态码表示操作结果等...RESTful风格的数据元操CRUD(create,read,update,delete)分别对应HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE...资源只能是名词不能是动词,而且名词往往和数据库的表名相对应。同时,利用HTTP方法(post, get, put, delete)可以分离网址中资源名称的操作。...DRF中封装了Serializer类和ModelSerializer类用于实现序列化操作,通过继承Serializer类或ModelSerializer类,我们可以自定义序列化器,用于将对象处理成字典,

    98121

    DRF视图详解:从基础视图到通用视图实践指南

    示例:使用APIView实现“增删改查查”from rest_framework.views import APIViewfrom rest_framework import serializersfrom...rest_framework.response import Responsefrom rest_framework import genericsclass ShopSerializer(serializers.ModelSerializer...常用通用视图ListAPIView:获取列表数据(GET)CreateAPIView:创建数据(POST)RetrieveAPIView:获取单个数据(GET)UpdateAPIView:更新数据(PUT...运行Django项目python manage.py runserver 0.0.0.0:8000打开浏览器登录访问:http://127.0.0.1:8000/api/books/get:查询列表post...:新增打开浏览器登录访问:http://127.0.0.1:8000/api/books/1get:查询单个对象put:修改delete:删除三、通用视图的高级用法动态查询集通过重写 get_queryset

    31610

    用django写接口(入门篇)

    1 rest_framework 环境配置 通过命令行操作如下语句 pip install djangorestframework 看到安装成功的提示就安装成功,可以嗨皮的写 restful 接口了 创建...) 3 创建 rest 的 view 函数 rest_framework 类似 django,需要通过 view 来展示接口返回的数据信息,在 views.py 中创建视图函数 from django.views.decorators.csrf...httpie 获取的列表接口 5 Serializer 的第一次优化调整 写完第一个 restful 接口,是否发现 model 和 serializer 有很多重复的代码,能否进行优化呢,答案是当然可以的...(request, pk): # 根据 pk 值获取对应的 post 实例 post = get_object_or_404(Post, pk=pk) # 首先判断是否存在这个...): # ForeignKey 链表结构字段处理,有两种处理方式,第一种展示 serializer 中设置的字段, # 第二种展示某个指定字段 # author = AuthorSerializer

    3.7K30

    django-rest-framewor

    源码繁琐,多说无益,耐心细读官方文档: https://www.django-rest-framework.org/ 个人总结: REST是一种软件架构设计风格,不是标准,也不是具体的技术实现,只是提供了一组设计原则和约束条件...DRF(Django RestFramework)是一套基于Django开发的、帮助我们更好的设计符合REST规范的Web应用的一个Django App,所以,本质上,它是一个Django App。...(直接在官网下载即可) 3 序列化组件    序列化组件的使用:   --get接口设计: 导入序列化组件:from rest_framework import serializers 定义序列化类,...定义需要返回的字段(字段类型可以与model中的类型不一致,参数也可以调整),字段名称必须与model中的一致 在GET接口逻辑中,获取QuerySet 开始序列化:将QuerySet作业第一个参数传给序列化类...:{ “get”: “retrieve”, “delete”: “destroy”, “put”: “update” } 上一步中执行as_view()方法传递参数的目的是为了完成优化,将delete请求方式重新命名为不同的函数

    2.2K10

    测试开发进阶(二十九)

    再次优化 查看 rest_framework.generics.CreateAPIView rest_framework.generics.ListAPIView 可以看到很多重复的代码 ?...get方法 两个类视图所对应的url地址不一致 再次优化 优化思路:使用动作来触发,而不是请求方法 from rest_framework import viewsets viewsets不再支持 get.../post/put/delete等请求方法,而只支持action动作 但是 ViewSet类中没有提供 get_object(), get_serializer等方法 继承 viewsets.GenericViewSet...ProjectModelSerializerfrom django_filters.rest_framework import DjangoFilterBackendclass ProjectsViewSet...参数用于指定该动作支持的请求方法,默认为get detail用于指定该动作要处理的是否为详情资源对象「url是否需要传递pk值」 在 url.py中添加 path('project/names/', views.ProjectsViewSet.as_view

    88010

    python教程

    序列化类(serializer class)与Django的表单类(Form class)非常相似,包括对各种字段有相似的确认标志(flag),例如required,max_length和default...以Django提供表单(Form)类和模型表单(ModelForm)类相同的方式,REST 框架包括了实例化(Serializer)类和模型实例化(ModelSerializer)类。...记住,ModelSerializer类并没有做什么有魔力的事情,它们仅仅是一个创建序列化类的快捷方式。 一个自动决定的字段集合。 简单的默认create()和update()方法的实现。...from snippets.permissions import IsOwnerOrReadOnly 现在,如果你再次打开浏览器,你会发现只有你登入,你才能删除(DELETE)或更新(PUT)属于你的snippet...ViewSet类几乎和View类一样,除了他们提供像read或update的操作,而不是像get和put的方法。

    6.3K10

    ​从入门到精通Django REST Framework-(三)

    什么是 ModelSerializer?ModelSerializer 是 Django REST Framework(DRF)提供的一个序列化器,它用于简化与 Django 模型的交互。...ModelSerializer 通过自动读取 Django 模型的字段,生成对应的序列化字段,从而简化了手动编写字段的工作。...为什么要使用 ModelSerializer简化代码: ModelSerializer 通过自动从 Django 模型生成字段,避免了手动逐一定义每个字段的重复代码。它大大简化了序列化器的编写工作。...required属性POST请求:需要提供所有字段的值PATCH请求:动态修改字段属性,允许只更新需要修改的字段from rest_framework import serializersclass DynamicRequiredFieldsMixin...)字段属性动态修改属性 作用 示例值 required 控制字段是否必须传入 Falseallow_null

    96100

    Django序列化器的简单使用

    简单定义代码如下所示: # ser.py from rest_framework import serializers # 声明序列化器,所有的序列化器都要直接或间接的继承于Serializer class...) return instance 3.3 补充delete 假如客户端以post get (创建一条 / 查询所有)请求方式与服务端进行数据交互,其中urls.py 的路由匹配为: urlpatterns...如果是非字段错误,可以通过修改REST framework 配置中的NON_FIELD_ERRORS_KEY 来控制错误字典中的键名。...验证成功,可以通过序列化器对象的validated_data属性获取数据。 在定义序列化器时,指明每个字段的序列化类型和选项参数,本身就是一种验证行为。...添加或修改原有的选项参数 class BookInfoSerializer(serializers.ModelSerializer): """图书数据序列化器""" class Meta

    2K40

    跟着官方文档学Python——Django Rest framework

    状态转移:使用GET/ POST/ PUT/ DELETE等HTTP动词操作资源,实现资源状态转变。 RESTful风格的API即为RESTful API。...通过GET/ POST/ PUT/ DELETE来获取/新建/更新/删除资源。一般使用JSON格式返回数据。大多数web框架都有相应的插件支持RESTful API。...Django Rest framework Django REST framework是一个内置在django里面的子应用,可以快速的开发REST API接口应用。...'rest_framework', ] 在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤: 将请求的数据(如JSON格式)转换为模型类对象 通过模型类对象进行数据库操作...Api List中可以查看所有学生信息,也可以进行增删查改(POST/DELETE/GET/PUT) 也可以通过携带用户id的url访问单个用户 http://127.0.0.1:8000/students

    3.4K10
    领券