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

重点内容回顾-DRF

django.db.models包含了可选的常量,常用的有三种: a.CASCADE级联,删除主表数据的时候,连同删除外的数据。这个就有点狠了,按需求慎用。...b.PROTECT保护,通过抛出一个异常ProtectedError异常,来阻止删除主表中被引用的数据。...5.3序列化&反序列化 下面我们最近推文的项目来简单的理解两个概念。 序列化:将模型对象转换为字典或者json数据的过程。 反序列化:将前端传递的数据保存到模型对象的过程。...数据库查询 属性: queryset(指定视图所使用查询集) 方法: get_queryset返回视图所使用查询集 get_object视图所使用查询集中查询指定的对象,默认根据pk进行查询。...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

2.4K20

Django REST 框架详解 04 | 序列化与反序列化及二者整合

1.视图 2.路由 3.接口测试 一、序列化 1.步骤 model s.py,定义表与字段,及表关系 serializes.py 序列化与反序列化 views.py 写 get,post 等操作...# 注意:调用时有加载顺序,PublishModelSerializer >> PublishModelSerializer # 这里通过 book publish 的,提数据...P.*)/$', views.Book.as_view()), ] 7.测试接口 使用 GET 查询结果 ?...def validate(self, attrs): # 同一出版社不能出版同一本书 publish = attrs.get('publish') # 这里的已经变成对象...三、序列化与反序列的整合 数据的安全性和健壮性来考虑,所有的自定义字段不能与 model 的原字段相同 因为序列化是将字段作为 Dict,而反序列化会将字段作为 Object 1.视图 views.py

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

    Django&DRF重点内容大盘点

    大家可以在了解了Django框架和DRF框架之后再来看这篇文章。否则会有点不知所云。...,即假使客户端进行POST方式的请求,依然可以通过request.GET获取请求查询字符串数据。..., verbose_name='图书') # cascade是级联,删除主表数据时连同数据一起删除 1.12.3迁移生成表 1)生成迁移文件 python manage.py makemigrations...filter, exclude参数可以查询条件 格式: 属性名__条件名=值 注意:可以写多个查询条件,默认是且的关系 F对象 用于查询时字段之间的比较 from django.db.models...站点就可以进行图片上传 2.DRF框架 2.1目的 利用DRF框架快速的实现RestAPI接口的设计 2.2RestfulAPI接口设计风格 关键点 1)url地址尽量使用名词,不要使用动词 2)请求url

    5.9K20

    Django rest_framework实现增删改查接口

    目录 Django rest_framework实现增删改查接口 写接口前的知识准备 __all__的使用方法 序列化类配置 Response二次封装 连表深度查询 单查群查接口 单删群删接口 单增,群增接口...整体单改群改接口 局部修改数据 视图给序列化传参 Django rest_framework实现增删改查接口 本文使用Djangorest_framework框架的ModelSerializer模块和...,前提方法名不能和字段名重名 然后在序列化类BookModelSerializer的meta的fields属性添加上面定义的方法名,这样就可以实现连表查询。...# 可以通过context将其传入,在序列化校验方法,self.context就能拿到传入的视图类的变量 book_ser = serializers.BookModelSerializer...# 可以通过context将其传入,在序列化校验方法,self.context就能拿到传入的视图类的变量 book_ser = serializers.BookModelSerializer

    2.3K20

    DRF框架学习(二)

    通常简称为DRF框架REST framework。 DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。...Django框架学习创建的demo工程,在settings.py的INSTALLED_APPS添加’rest_framework’。...3.2见识DRF的魅力 我们仍以在学习Django框架使用的图书英雄为案例,使用Django REST framework快速实现图书的REST API。 3.2.1....django的路由列表 4.Serializer序列化器 作用:进行数据的序列化和反序列化 序列化:把对象转换为字典 反序列化:数据校验;数据保存(可以利用这一点实现新增和更新); 4.1使用 定义一个序列化器类...4.4序列化的定义 Django REST framework的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。

    4.1K30

    测试开发进阶(二十七)

    PrimaryKeyRelatedField interfaces/serializer.py创建序列化器 from rest_framework import serializers from...PrimaryKeyRelatedField序列化器字段 序列化输出的值为ID值 序列化输出 from interfaces.models import Interfaces one_interface...反向指定 父表默认不会生产关联字段(表),可以手动指定,字段名默认为子表模型类名「小写_set」 projects.serializer.ProjectModelSerializer添加 interfaces_set...Request 对Django的HttpRequest进行拓展 根据请求头中的Content-Type自动进行解析 无论前端发送那种格式数据,都可以以相同的方式读取 request.data 类似于Django...的request.GET 获取查询字符串参数 支持Django.request中所有的对象和方法 优化视图-渲染 from rest_framework.response import Response

    59920

    django-rest-framework框架学习

    django很著名的一个框架django-rest-framework,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要的格式帮了我们省了很多事 在这里就记录一下个人的学习过程 django-rest-framework...://www.django-rest-framework.org/api-guide/serializers/ 创建serializers.py在其中实现序列化类 由于这个序列化是和我们的模型想对应的相关...请注意,使用超链接的API时,您需要确保双方的API意见和串行类设置查找字段,如果你需要使用一个自定义值 在get_queryset()实现的是按照name查询的,因为很多时候客户端并不知道自己的id...math = models.FloatField() english = models.FloatField() chiness = models.FloatField() 我们在这里没有使用...,毕竟现在很多大牛说不使用,在应用控制逻辑嘛 当然这里也可以使用models.ForeignKey,会让操作变得更简单的一点 serializers.py为: from rest_framework

    1.3K10

    Django rest Framework入门 二 :DRF框架初体验

    Django rest Framework入门 一 :手工实现常见API记录了如何手工基于Django实现常见的API类型,这篇笔记记录一下DRF框架简单使用的体验。...'rest_framework', ] 编写序列化序列化和反序列化的意思其实就是利用Django的Model将数据库的数据进行一定的格式修改(比如dict变成json)之后返回给api请求者和将从...的时候反复写的利用model数据库获取数据和将从api获取到的数据写入数据库的过程,下面列举了一个查询某一本具体的书的例子。...两个视图类所有的功能,由此可以见DRF框架还是很方便的,减少了很多重复代码的编写工作。...修改url配置 demo的跟路由配置可以不作任何修改 以books/开头的url会导向book app的路由,如下: from django.contrib import admin from django.urls

    8710

    Restful接口开发与测试—Django安装

    Django简介 Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。...Django REST Framework 简介 Django REST Framework,是一套基于DjangoREST风格的框架。...'rest_framework', 'api', ] rest_framework权限配置 默认的权限策略可以设置在全局范围内,通过DEFAULT_PERMISSION_CLASSES设置。...登录我们创建的账户,可以看到如下界面: ? 数据序列化 Serializers用于定义API的表现形式,如返回哪些字段、返回怎样的格式等。这里序列化Django自带的User和Group。...在Django REST framework,ViewSets用于定义视图的展现形式,例如返回哪些内容,需要做哪些权限处理。

    1.6K10

    Django基表的创建、字段属性简介、脏数据概念、子序列化

    反过来先操作表B后操作表A,更满足逻辑思维,一样可以执行。通过逻辑将A、B表进行连表查询,不会有任何异常。如两张表建立了一对一字段,在A表,那么先往B表写数据就更合理。...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外设置反向查询的字段名:正向找字段名,反向找related_name...子序列化 Django的子序列化的功能是:通过跨表查询数据然后对跨表查到的数据反序列化。...如果涉及到通过进行跨表查询,然后再将查询数据反序列化到前台就需要用到子序列化,比如下面的例子:我们查询出版社信息的时候连带将book表的该出版社所出版过的书名一并查出来。...子序列化使用方法及注意事项: 1)只能在序列化使用 2)字段名必须是(正向反向都可以)字段,相对于自定义序列化字段,自定义序列化字段不能参与反序列化,而子序列化必须为键名,子序列化字段不写入数据库

    4.3K30

    Django进阶:DRF(Django REST framework)

    Django,我们通过model-view-template实现了后端和前端的通信。但前端未必是用Django的template实现的,也可以用单独的前端框架(如vue)实现。...关于如何设计出符合REST风格的API,可以参考阮一峰的《RESTful API 设计指南》 那么用DRF实现的就是RESTful API?其实DRF没有强制实现。...“Django REST 框架”这个名字是在 2011 年初决定的,选择它只是为了确保开发人员很容易找到这个项目。在整个文档,我们尝试使用更简单、技术上正确的术语“Web API”。...', namespace='rest_framework')) ] 因为我们使用的是ViewSet而不是view,所以我们可以通过简单地将ViewSet注册到Router来自动生成API的 URL conf...可以发现,和Django程序相比,我们没有写template做前端的显示,而是写了序列化类提供API。前端可以分离出来,使用API来和后端通信。

    58720

    Django REST Framework-常用的类视图

    Django REST Framework是基于Django的一个用于构建Web API的框架。它提供了许多用于构建Web API的工具和实用程序,其中最常用的是类视图。...在视图中,我们指定了要使用查询集和序列化器,并使用list,create和destroy方法处理GET,POST和DELETE请求。...我们指定了要使用查询集和序列化器,并使用ModelViewSet提供的默认实现处理常见API操作。...我们指定了要使用查询集和序列化器,并使用ReadOnlyModelViewSet提供的默认实现处理GET请求。ViewSetViewSet是一种通用的类视图,它提供了处理HTTP请求的通用方式。...总结在Django REST Framework,类视图是一种方便的方式来编写Web API视图,并带有许多有用的内置功能。

    68930

    搭建restful api后台

    POST - 创建 PUT - 编辑 DELETE - 删除 今天要讲的是rest_framework框架,它是基于Django的,帮助我们快速开发符合RESTful规范的接口框架。...我们先来说说序列化器这个东西。在rest_framework序列化器是一个位于客户端和后台之间的中间层。...下面我们来看看具体的序列化序列化器的类在rest_framework.serializers,最基本的一个序列化器类是Serializer。...我们通过继承Serializer类定义自己的序列化器类。通常在类需要指出本序列化器所有需要进行处理的字段名和字段类型,看起来有点像在定义一个Model或者一个Form。 OK, 开战吧。...然后做接口: 实现序列化器 我们使用Django REST framework 提供的序列化器简化代码。

    2K50

    Django Rest Framework 序列化(下)

    Django Rest Framework 序列化) ? 一、使用 ModelSerializer 组件 ① 包装 Serializer ?...ModelSerializer 与 Serializer 区别在于:ModelSerializer 支持了 Serializer 中所有的操作,并且通过自动生成所有数据字段与序列化类的一一对应关系。...② ModelSerializer 深度控制 在上面,看到在进行联表查询的时候,只能获取到外关联对象,在当前表存储的 id,怎样拿到外关联对象的具体信息。 ?...在 restful 规范,规定应该给出相应的详情链接,可以通过 url 拼接,在 django rest framework 也有相对应的实现。...# view_name 参数 进行传参的时候是参考路由匹配的 name 与 namespace 参数 # lookup_field 参数是根据在 UserInfo 表的联表查询字段 group_id

    77710

    Django_rest框架电商项目实践项目(一篇文章讲清楚电商项目)项目的创建与基本的配置,所有接口的代码,项目代码已给

    目录 需求 创建一个Django项目 配置基础东西 连接mysql 使用Django_rest 解决跨域 建模(model里面写实体类) admin.py文件里面的创建 手动在后台管理系统里面添加相关数据...,需要排序 根据生产厂商进行选择 view url 前段传参 商品的详情 view url 前端如何传参 查询需要返回具体的name值,而不是id 第一种方法 第二种方法 实现用户的登录 用户的详情...还有收货地址模块 创建一个Django项目 用pycharm直接创建一个Django项目 配置基础东西 连接mysql 使用Django_rest 解决跨域 第一步 第二部 第三部.../ 那么既然项目可以使用分页,前端如何使用分页功能呢?...这个表有一个和用户关联。

    2.8K10

    DjangoRESTframework(补充)

    ,将模型对象传入 2) data:用于反序列化,将被反序列化的数据传入 3) 除了instance和data参数,在构造Serializer对象时,还可通过context参数额外添加数据 serializer...: '1986-07-24', 'bread': 36, 'bcomment': 40, 'image': None} # 如果被序列化的有多条数据的查询集 QuerySet,可以通过添加 many=...验证失败,可以通过序列化器对象的 errors 属性获取错误信息,返回一个字典, 包含字段和字段的错误,若是非字段错误,可以通过修改 REST framework 配置的 NON_FIElD_ERRORS_KEY...APIView与View的不同之处在于: 传入到视图方法的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...filter_backends 过滤控制后端 详情页视图的使用 Lookup_field 查询单一数据对象使用的条件字段,默认为‘pk’ Look_url_kwarg 查询单一数据时 url 的参数关键字名称

    2.2K30

    DRF多对多ManytoMany字段的更新和添加

    背景:drf的序列化器给模型输出带来了便利但是对于多对多字段网上查询的内容却是很少(也有可能是本人不会搜答案)经过我多个日夜的摸索,终于实现了我的需求,现将自己的心得记录一下说下我的需求:定义一个订单模型里面的订单...orderId 是自动生成的UUID订单的区域是,下单人也是,菜品orderMenu是一个多对多字段(其实通过我查到的方法说的都是字段就可以实现但是个人觉得菜品和订单应该是多对多会比较好理解...(serializers.ModelSerializer): # 进一步自定义中间表字段的序列化表示,可以在 to_representation 方法中进行处理 def to_representation...查找表传入查找的字段并用data序列话出来 reason = OrderCenterThoughSerializer(instance.ordercenterthough_set.get...在写的时候又发现了代码的几个bug1、可以更新不是订单人的菜品2、更新的时候只能更新已经生成的菜品内容,因为无法为订单添加新的菜品,这个涉及到中间表的对应关系已经确定了。

    91820
    领券