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

【Django-DRF】使用md笔记 0基础到高手. 第(4)篇:使用Django-DRF进行开发

通常简称为DRF框架 或 REST framework。 DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。...图书数据序列化器""" class Meta: model = BookInfo fields = 'all' model 指明该序列化器处理的数据字段模型类...BookInfo参考生成 fields 指明该序列化器包含模型类中的哪些字段,'all'指明包含所有字段 2....router = DefaultRouter() # 可以处理视图的路由器 router.register('books', views.BookInfoViewSet, name='books') # 路由器中注册视图集...: 1)点击链接127.0.0.1:8000/books/ 可以访问 获 取所有数据的接口,呈现如下页面: 2)在页面底下表单部分填写图书信息,可以访问 加新图书的接口,保存新书: 点击POST

26330

Django REST Framework-序列化器的使用(二)

DRF中,我们还可以使用序列化器进行反序列化。反序列化是将序列化格式(例如JSON)转换为Django模型的过程。...例如,当我们从客户端接收POST请求时,我们需要将接收到的JSON格式转换为Django模型,然后将其保存到数据库中。使用序列化器,我们可以轻松地完成这个过程。...create()方法将反序列化的数据保存到数据库中,而update()方法将反序列化的数据更新现有模型实例中。...除了基本的序列化和反序列化之外,DRF还提供了许多其他功能,例如字段验证,自定义字段,嵌套关系等。...使用DRF的序列化器,我们可以轻松地将Django模型转换为序列化格式,将序列化格式转换为Django模型,并验证和操作数据。

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

Python3+ Django3:自动生成Swagger接口文档

后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新”。为了解决这个问题,业界推出了一个Swagger框架来管理接口文档,实现接口文档的自动更新。...总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新。当接口有变动时,对应的接口文档也会自动更新生成。 ?...(删) partial_update: 更新现有组中的一个或多个字段(改:部分更改) update: 更新一组(改:全部更改...执行数据同步、运行 1、上述一切配置完成,开始进行数据库迁移、同步。...验证效果 1、服务运行起来,默认端口为8000,浏览器访问http://127.0.0.1:8000/redoc/,可查看redoc ui,效果如下所示。 ?

14.7K32

第 16 篇:别再手动管理接口文档了

例如我们可以看到 GET /posts/{id}/ 这个接口的响应参数,其中大部分有中文信息的描述,我们可以推断,这些说明都是 drf-yasg 自动从定义在 Post 模型字段的 verbose_name...原理是 drf-yasg 会尝试去解析接口对应的序列化器(Serializer),从序列化器中提取出对应的请求和响应字段(如果序列化器中找不到,它会进一步去序列化器关联的模型中找),因此我们就可以给序列化器中定义的字段添加说明信息...查询过滤参数也是可以这样设置的,例如先来看一下 GET /posts/ 的参数: 可以看到用来过滤文章列表的参数都没有说明,这些字段都定义在 PostFilter 中,我们来改一下代码,添加必要的说明信息再去文档中看看效果吧...更正错误的响应参数 仔细看生成的接口文档,发现有 2 个接口的返回内容是错误的。...看看修改的效果: 至此,我们就有了一套比较完善的博客接口文档了,而且大部分内容均由 drf-yasg 为我们自动生成,省去了不少手写文档的麻烦。

1.8K20

安装 Django REST Framework

安装Django REST Framework(以下简称DRF)非常简单。您只需按照以下步骤操作:创建一个新的Django项目或使用现有的Django项目。在命令行中使用pip命令安装DRF。...它们负责将Django模型转换为JSON、XML或其他格式的数据,并反之亦然。...下面是一个简单的序列化器示例,用于将Django的User模型序列化为JSON格式:from rest_framework import serializersfrom django.contrib.auth.models...我们指定了User模型作为序列化器的元数据,并指定了我们想要在JSON中包含的字段。创建视图视图是DRF中的另一个核心概念。它们定义了API的行为,即如何响应请求、如何验证输入等。...在DRF中,我们可以使用Django的URLConf和DRF的路由器来定义路由。

1.4K20

高级增删改

在XCode中,修改数据的标准流程是,先查出来,修改属性保存。此时生成的update set语句,只包含修改过的字段。 ?...重载可以做业务代码判断,也可以级联更新其它表,还可以记录删改操作日志,甚至还可以做假删除(重载OnDelete然后实际执行OnUpdate) 分为两组重载,实际执行顺序是:Insert=>Valid...脏数据是生成Update语句的核心,不脏的字段不会出现在update set 之中,实现部分字段更新,后续有专门章节讲解。...实体过滤器 实体过滤器EntityModule,用于拦截实体类的删改操作,内置最常用的3个过滤器UserModule/TimeModule/IPModule 前面《XCode数据模型文件》推荐的8个常用字段还记得吗...Sql缓存,更新机制 实体缓存。全表整理缓存,更新机制 对象缓存。字典缓存,适用用户等数据较多场景。 百亿级性能。字段精炼,索引完备,合理查询,充分利用缓存 实体工厂。元数据,通用处理程序 角色权限。

1.5K10

DRF框架中的英文单词

PATCH这个操作在现在基本上是不用的,但是我们了解一下,path只是将更改的内容发送,put将更改所有的内容都发送过去。这个在网上说法不一,先按这种理解,毕竟没人用这种操作方式了,而是用put。...HypermediaAPI超媒体,这个也是理解即可,RESTful API最好做到Hypermedia(即返回结果中提供链接,连其他API方法),使得用户不查文档,也知道下一步应该做什么。...10. title/'taɪtl/标题,我们在设计模型类的时候用到了这一单词,很简单,大家过一下即可。...20. model/'mɑdl/模型,我们在很多的时候都用到了这个单词,在DRF框架我们在下面的情况中用到了这个单词。指明该序列化器处理的数据字段模型类BookInfo参考生成。...,指明该序列化器包含模型类中的哪些字段,'all'指明包含所有字段

1.7K30

DRF系列总结二:脚手架搭建

这里的接口认证策略,去掉了HTTP基本认证的方式(接口提供账号密码),仅保留了使用Django默认session后端进行身份验证的机制,适用于与网站在相同的Session环境中运行的AJAX客户端;身份验证成功,...filtering rest endpoints ... ) 通过引入django_filters的DjangoFilterBackend,我们可以通过配置的方式对外快速提供Django模型的查询接口..."code": ["exact", "in"], "is_activated": ["exact"], } ... django_filters对于需要对外提供Django模型的...,增加了page和total_page字段,代表当前页和总页数,并修改了返回数据的字段为items,这样可以统一接口的分页格式,满足前端和第三方系统对接口后台分页的绝大部分需求场景。...return Response({ "name": "更新集群", "path": "/api/c/compapi/v2/cc/update_set/",

3.6K60

大数据开发,一定要关注小细节

最近几比较忙,三周未更新,想你们了。 深深的感受到“细节决定成败”,“蝴蝶效应“一句话细节体现工作质量也体现个人能力。今天复盘回顾一个个坑哭的小细节,更好的迎接未来挑战。...业务表和日志采集:动要有原则: 1,能添加值不要新增列,比如在json类型中加值,不要增加额外的列名。 2,能增加列不要新增一个表。 3,能加一个辅助表,不要重构原有表结构。...4,遵循值,增列,副表的优先集,提前周知变化,早做应对。 3,动一下就是一万年 数据开发的工作流程是这样的。 接到一个数据需求, 第一步,我们要分析需求的合理性,能不能做。...也一定要主要主要表的字段类型,不要望文生义,id不一定是数字。 第五步一定要多花点时间反复校验,不要因为小细节而花大时间回溯数据。 4,借助工具 用IDE 管理自己的ETL代码,方便查找。...数据仓的经典模型

46820

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

——马云 Github和Gitee代码同步更新: https://github.com/PythonWebProject/Django_Fresh_Ecommerce; https://gitee.com...2.serializer序列化model 使用Django自带的model_to_dict()方法可以实现直接将模型数据转化为字典形式,但是对于DateTimeField、ImageField等字段时还是无法序列化...Django中有Form,也有ModelForm,DRF中也有ModelSerializer,相比于Serializer,它省去了模型所有字段的添加和处理数据方法的实现,serializers.py简化如下...name', 'sold_num', 'shop_price', 'goods_brief', 'goods_front_image', 'is_hot'] 由ModelSerializer自动完成与模型中相应字段的映射...显然,在传入price_min参数,显示到前端的数据量也会发生变化。

5.3K20

Django 多对多字段更新和插入数据实例

Book.objects.get(id=1) b.author.all() 2.一个作者的所有书籍: a = Author.objects.get(id=1) a.book_set.all() 3.给多对多的字段加值...可以看出这个blog_book_authors是根据多对多关系自动生成的关系表,但是如果我们想要搜集关于这个作者发布某一本书籍的时间额外增加一个字段,或者说与现有的系统集成,这个关系表已经存在了,那对于这样的情形...,Django允许指定一个用于管理多对多关系的中间模型,然后就可以把这些额外的字段添加到这个中间模型中,具体的方法就是在ManyToMany字段中指定through参数指定作为中介的中间模型,修改上述models.py...,这两个外键定义了两个模型之间是如何关联到一起的 所以当创建多对多关系模型的时候提倡使用through参数去指定并创建中间模型,这样比较方便我们进行字段的扩展 那么此时我们又该如何添加和删除多对多关系呢...,add(),remove(),create()这些方法都会被禁用,所以在创建这种类型的关系的时候唯一的方法就是通过创建中间模型的实例 以上这篇Django 多对多字段更新和插入数据实例就是小编分享给大家的全部内容了

4.2K30

Django&DRF重点内容大盘点

指的是Django项目根目录 2.语言和时区本地化: LANGUAGE_CODE = 'zh-Hans' # 中文语言 TIME_ZONE = 'Asia/Shanghai' # 中国时间 1.6客户端服务器传递参数途径...class 模型类名(models.Model): # 字段名 = models.字段类型(选项参数) # ......import F Q对象 用于查询时条件之间的逻辑关系 from django.db.models import Q &(与) |(或) ~() 聚合 聚合类: from...通过模型类进行关联查询 查图书(一) 一类.objects.get|filter(多类名__字段__条件=值) 例:books = BookInfo.objects.filter...使用 1)在配置文件中设置配置项MEDIA_ROOT='上传文件的保存目录' 2)定义模型类时,图片字段的类型使用 ImageField 3)迁移生成表并在admin.py注册模型类,直接登录Admin

5.9K20

对象字典缓存(百万军中取敌首级)

在Meta.SingleCache内查找id时,如果已存在,则直接返回,否则执行委托Student.FindByKey查找对象缓存起来。 XCode用户,也可以根据该思想设计自己的缓存。...缓存过期,开异步线程更新并同时返回旧数据,确保应用层性能。设置文件的 SingleCacheExpire, 默认10秒 删改过期。对实体类的删改操作完成,都会直接修改缓存对应项。...由于缓存的删改过期跟实体操作绑定在一起,因此,越过实体类直接DAL执行更新操作,或者其它服务器修改数据,此时无法影响实体缓存,导致数据更新不及时。...快速展现用法,代码配置连接字符串 数据模型文件。建立表格字段和索引,名字以及数据类型规范,推荐字段(时间,用户,IP) 实体类详解。数据类业务类,泛型基类,接口 功能设置。...重载拦截,自增字段,Valid验证,实体模型(时间,用户,IP) 脏数据。如何产生,怎么利用 增量累加。高并发统计 事务处理。单表和多表,不同连接,多种写法 扩展属性。多表关联,Map映射 高级查询。

1.2K10

实体类详解

即可拥有)。...数据类包含表名(类名)字段名(属性)等信息,修改模型文件,每次生成都会覆盖文件。 业务类包含其它表结构信息,供开发者填写代码,所以只有首次生成,而再次生成时不会覆盖。 ?...Meta.Factory.AdditionalFields用于存放累加字段 一般更新语句 update user set Logins=123 where id=1,而把Logins字段设为累加字段,...脏数据是生成Update语句的核心,不脏的字段不会出现在update set 之中,实现部分字段更新,后续有专门章节讲解。...重载可以做业务代码判断,也可以级联更新其它表,还可以记录删改操作日志,甚至还可以做假删除(重载OnDelete然后实际执行OnUpdate) 分为两组重载,实际执行顺序是:Insert=>Valid

1.3K30

drf的接口文档生成与管理

可以按照右边的指引通过安装coreapi-cli,通过命令行操作访问接口文档 2、对于视图集ViewSet中的retrieve名称,在接口文档中叫做read 3、接口文档中参数Description需要在模型类或序列化器类的字段中以...help_text选项定义,例如 在模型类中定义 class EnvironmentView(models.Model): ......总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新。...当接口有变动时,对应的接口文档也会自动更新 Swagger优势 Swagger可生成一个具有互动性的API控制台,可快速学习和尝试API Swagger可生成客户端SDK代码,用于不同平台上Java、Python...实现开箱即用的缓存功能, 只需要配置对应的参数即可启用, 对应参数解释如下: cache_timeout: 用于指定缓存的生存时间 cache_kwargs: 用于传递 cache_page 允许接受的位置参数

4.6K10
领券