此前在讨论基于模板引擎的开发方式和 django-rest-framework 开发的异同时说过,django-rest-framework 开发和传统的开发方式没有什么不同,区别仅在于返回的数据格式不同而已。
Django REST Framework(以下简称DRF)是一个强大的框架,用于构建Web API。其中一个核心概念是序列化器,它允许我们将Django模型转换为序列化的格式(例如JSON,XML等),并反之亦然。
在之前的 django rest framework,其它组件中,在视图函数中继承类都是 rest_framework.view.APIView,这个 APIView 是继承的 django 中的 View 并且做了封装和方法重写。那么在 django rest framework 中,还有没有提供其它的类能够继承?
Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。
DRF 框架,全称为 Django Rest Framework,是 Django 内置模块的扩展,用于创建标准化 RESTful API;它利用 ORM 映射数据库,并自定义序列化数据进行返回,多用于前后端分离项目
drf 传入视图的request 不再是Django默认的HttpRequest对象,而是drf 提供的拓展了HttpRequest 类的Request 类的对象。
版权声明:Copyright © https://blog.csdn.net/zzw19951261/article/details/80995504
前面用了两篇文章,分别用 Java + Spring Boot 和 Python + Flask 在本地构建了一套 RESTful API 服务
官网:https://www.djangoproject.com/ 博客:https://www.liujiangblog.com/ 本博客内容参考git:https://gitcode.net/mirrors/jackfrued/Python-100-Days 一些细节问题,大家可以查看git连接。本文主要的改变为把代码升级为django4.1版本。
一般我们搞定接口,都是用restful API. rest 指的是一组架构约束条件和原则,提供了一个新的架构设计思路,满足这些约束条件和原则的应用程序或设计就是 RESTful
在 django 博客教程中,我们使用了 django-haystack 和 Elasticsearch 进行文章内容的搜索。django-haystack 默认返回的搜索结果是一个类似于 django QuerySet 的对象,需要配合模板系统使用,因为未被序列化,所以无法直接用于 django-rest-framework 的接口。当然解决方案也很简单,编写相应的序列化器将返回结果序列化就可以了。
Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
目录 不会DRF?源码都分析透了确定不来看? 快速使用DRF写出接口 序列化和反序列化 drf快速使用 views.py serializer.py urls.py 在settings的app中注册 models.py postman测试 CBV源码流程分析 Django View和DRF APIView的小插曲 DRF之APIView和Request对象分析 APIView的执行流程 Request对象分析 原来的django中没有request.data,造一个! 不会DRF?源码都分析透了确定不来看?
ViewSet视图集类不再实现get()、post()等方法,而是实现动作 action 如 list() 、create() 等。
导入:from rest_framework.serializers import Serializer
在DRF中,我们还可以使用序列化器进行反序列化。反序列化是将序列化格式(例如JSON)转换为Django模型的过程。例如,当我们从客户端接收POST请求时,我们需要将接收到的JSON格式转换为Django模型,然后将其保存到数据库中。使用序列化器,我们可以轻松地完成这个过程。
REST是一种软件架构设计风格,不是标准,也不是具体的技术实现,只是提供了一组设计原则和约束条件。
现在新一代web应用都开始采用前后端分离的方式来进行,淘汰了以前的服务器端渲染的方式。前后端分离方式有许多好处,比如 1、可以前后端并行开发,提高开发效率 2、页面都在客户端进行渲染,提高了渲染速度,减小了服务器的压力 3、一套api提供给多个客户端使用,而且不限制客户端的类型(web,app均可)
博客:https://www.jianshu.com/u/9fcd71535294
Github和Gitee代码同步更新: https://github.com/PythonWebProject/Django_Fresh_Ecommerce; https://gitee.com/Python_Web_Project/Django_Fresh_Ecommerce。
在 Django REST Framework 中,视图集(Viewset)是一种方便的 API 开发方式,它将视图(View)和序列化器(Serializer)组合起来,提供了一组标准的 API 操作(列表、创建、更新、删除、详情等),可以大大简化 API 的编写和维护工作,提高开发效率和代码可读性。
Overthinking ruins you. Ruins the situation, twists it around, makes you worry and just makes everything much worse than it actually is.
建立图书管理系统: 表Book: name, price, img, authors, publish, is_delete, create_time 表Publish: name, address, is_delete, create_time 表Author: name, age, is_delete, create_time 表AuthorDetail: mobile, author, is_delete, create_time
Courses --- GET ---> 查看数据----->返回所有数据列表[{},{},]
2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地。分享出来后,有同学觉得挺不错,希望能开源,本着“公司代码不要传到网上去,以免引起不必要麻烦”的原则,只能在家从头写一个,边重新梳理代码边温习巩固知识点,以学习交流为目的,定义为“学习版”。
总结:GenericAPIView就是在APIView基础上额外提供了三个方法和三个类属性,如果不配合视图工具类,则体现不出来优势所在
Django可以用LoginRequiredMixin和PermissionRequiredMixin给类视图添加认证和权限,DRF做了高级封装,提供了更简洁的实现方式。我们通过继续学习官网教程来进行了解。
在日常开发中,会从别的API获取数据或者自己写API提供数据,数据格式一般都是采用JSON格式。这期间就会涉及两个专业术语:
在Django REST Framework(DRF)中,序列化器是用于将Django模型转换为序列化格式(例如JSON)和将序列化格式转换为Django模型的组件。
makemigration需要指定名称,然后migrate才能识别两次<span style=”font-family: Arial, Helvetica, sans-serif;” makemigrations的不同</span
安装Django REST Framework(以下简称DRF)非常简单。您只需按照以下步骤操作:
写下这篇文章,一方面记录Django REST framework的体验过程,同时借此解读下REST架构风格。
在这个例子中,我们定义了一个 BookViewSet 视图集,并将 Book 模型的查询集设置为 Book.objects.all(),将 BookSerializer 序列化器设置为默认序列化器。
在Django REST Framework(DRF)中,序列化和反序列化是将Django模型转换为序列化的格式,以便我们可以将其发送到前端应用程序并从前端应用程序接收数据的过程。
多对多关系的时候,django 会自动生成第三张表维系表关系,字段分别是 userinfo 和 role 的 id,其中 api_userinfo_roles 为多对多关系生成的表。
现在前后端分离的架构设计越来越流行,业界甚至出现了API优先的趋势。显然API开发已经成为后端程序员的必备技能了,那作为一个测试,特别是把Django作为自己主要的自动化测试平台的测试开发,Django REST framework(DRF)这个REST API开发框架就是你不得不掌握的内容了。
LearnDjango/settings.py中添加 'rest_framework'
这里想必学习了 django 的童鞋都应该能够知道通过 python 自带的包管理工具进行安装了吧
DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)
django-rest-framework 类视图拓展自 django 的类视图,只是针对数据的序列化和反序列化等逻辑做了封装。
版权声明:Copyright © https://blog.csdn.net/zzw19951261/article/details/80830234
在做其他事之前,我们会用virtualenv创建一个新的虚拟环境。这将确保我们的包配置与我们正在工作的其他项目完全隔离。
这周将会持续更新跟着官方文档学Python系列文章,主要是围绕web框架以及其他后端组件的官方文档展开学习。日拱一卒,让我们开始吧!
领取专属 10元无门槛券
手把手带您无忧上云