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

第 3 篇:实现博客首页文章列表 API

400:表示客户端请求错误。...401:没有提供身份认证信息 403:没有操作权限 404 :访问的资源不存在 405:不支持的 HTTP 请求方法 500服务器内部错误 HTTP 请求和响应过程,django-rest-framework...但是资源的序列化框架是无法自动化完成的,框架提供了基本的序列化器,我们需要自定义序列化逻辑。所以,让我们来定义 PostListSerializer 序列化器,用它来序列化文章列表。...实际上,django-rest-framework 序列化器的设计参考了 django 表单的设计。序列化器和表单也有很多相似功能,比如对输入数据进行校验等。...而对于文章关联的 category、author,它们本身也是一个对象django-rest-framework 就无法推测该使用什么类型的系列化字段来序列化它们了。

98920

Github 火热的 FastAPI 库,站在了这些知名库的肩膀上

Django REST Framework Django REST Framework 是一个非常灵活的框架,用于构建 Web API,以改善 Django 的 API 功能。...Django REST Framework 是第一个自动生成 API 文档的框架,自动生成 API 的接口文档是 FastAPI 框架诞生的缘由之一。...实际上,在FastAPI 应用程序内部使用 Requests 是很常见的。 但是,FastAPI 从 Requests 中获得了很多启发。...因此,如果 JSON 体内又有 JSON 对象,这又是嵌套JSON对象JSON对象,它不能很好的生成文档和验证。 启发 FastAPI 地方 使用 Python 类型提示可以提供很大的编辑器支持。...那是像 Starlette(或FastAPI)这样的框架可以提供的。它是 Starlette 和 FastAPI 的推荐服务器。 FastAPI推荐它为主 Web服务器运行 FastAPI 应用程序

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

构建强大的API-Django中的REST框架探究与实践

数据验证与错误处理在API开发中,数据验证和错误处理是至关重要的部分。Django REST框架提供了强大的数据验证机制和错误处理功能,让我们能够轻松地处理各种情况。...Django REST框架提供了丰富的错误处理机制,包括内置的异常类以及自定义异常处理器。...数据序列化与性能优化在处理大量数据时,有效地序列化和反序列化数据对性能至关重要。Django REST框架提供了丰富的序列化和性能优化功能,可以帮助我们提高应用程序的性能和效率。...Django REST框架提供了一些性能优化技巧,可以帮助我们提高序列化和反序列化操作的效率。...Django REST框架提供了丰富的工具和功能,可以帮助我们定制化API响应和错误处理。

33020

【愚公系列】2022年04月 Python教学课程 64-DRF框架序列化

文章目录 一、DRF框架序列化器的使用 1.设置新环境 2.创建新项目 3.创建模型类 4.创建序列化程序类 5.使用序列化程序 6.使用模型序列化程序 7.使用我们的序列化程序编写常规 Django...视图 一、DRF框架序列化器的使用 1.设置新环境 在我们做任何其他事情之前,我们将使用venv创建一个新的虚拟环境。...我们可以通过声明与Django的形式非常相似的序列化程序来做到这一点。在名为的目录中创建一个文件,然后添加以下内容。...这不是你通常想要做的事情,REST框架视图实际上使用比这更明智的行为,但它现在会满足我们的目的。 我们还需要一个与单个代码段相对应的视图,该视图可用于检索、更新或删除代码段。...如果我们发送格式错误的 ,或者如果使用视图无法处理的方法发出请求,那么我们最终会得到500个“服务器错误”响应。

78410

【愚公系列】2022年04月 Python教学课程 77-DRF框架之异常

文章目录 一、DRF框架自带异常 二、自定义异常 一、DRF框架自带异常 REST 框架的视图处理各种异常,并处理返回适当的错误响应。 处理的异常包括: 在 REST 框架中定义的异常。...PermissionDenied 在每种情况下,REST 框架都将返回具有适当状态代码和内容类型的响应。响应的正文将包含有关错误性质的任何其他详细信息。 大多数错误响应将在响应正文中包含一个键。...二、自定义异常 您可以通过创建一个处理程序函数来实现自定义异常处理,该函数将 API 视图中引发的异常转换为响应对象。这允许您控制 API 使用的错误响应样式。...异常处理程序函数应返回对象,如果无法处理异常,则应返回。如果处理程序返回,则将重新引发异常,Django将返回标准的HTTP 500服务器错误”响应。...它不会用于视图直接返回的任何响应,例如在序列化程序验证失败时由泛型视图返回的响应。HTTP_400_BAD_REQUEST

1K40

DRF框架学习(二)

把其他格式的数据转换为程序中数据结构类型,这个过程叫做反序列化的过程。 例:将前端传递的数据保存到模型对象中的过程,叫做反序列化过程。...3.DRF框架 作用:大大提高RestAPI接口开发效率 简介: Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。...通常简称为DRF框架REST framework。 DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。...3.2见识DRF的魅力 我们仍以在学习Django框架时使用的图书英雄为案例,使用Django REST framework快速实现图书的REST API。 3.2.1....4.5序列化功能(重点掌握) 把实例对象转换为字典数据 知识点: 1、序列化单个对象 2、序列化多个对象 3、关联对象嵌套序列化 1)将关联对象序列化为关联对象的主键 # 在英雄类(多)中添加 hbook

4.1K30

python教程

用我们的序列化来写常规的Django视图 让我们看看,使用我们新的序列化类,我们怎么写一些API视图。此刻,我们不会使用REST框架的其他特性,仅仅像写常规Django视图一样。...如果我们发送不正确的json数据,或者如果我们制造了一个视图没有写处理的方法(method),那么我们会得到500服务器错误”的响应。当然,现在也会出现这个问题。...请求对象 REST框架介绍了一个请求(Request)对象,它扩展了常规的HttpResquest,并且,提供更灵活的请求解析。...相似地,虽然我们可以在响应对象中带数据,但允许REST框架渲染响应成正确的内容类型。...在父表述使用嵌套的实体。 一些自定义的表述。 REST框架支持以上所有方式,都能适应正向或者反向关系,或者就行使用一般的外键一样使用自定义的管理方式。 这种情况下,我们想要在实体之间使用超链接方式。

5K10

Django&DRF重点内容大盘点

大家可以在了解了Django框架和DRF框架之后再来看这篇文章。否则会有点不知所云。...服务器错误 5)响应数据的格式:json 2.3django自定义RestAPI接口 RestAPI接口核心工作 1.将数据库数据序列化为前端所需要的格式,并返回 2.将前端发送的数据反序列化为模型类对象...serializers.Serializer from rest_framework import serializers # serializers.Serializer:DRF框架中所有序列化器的父类...(books,many=True) res = json.dumps(serializer.data,ensure_ascii=False,indent=4) 3)关联对象嵌套序列化 1.将关联对象序列化为关联对象的主键...='图书') 注意:和对象关联的对象如果有多个,在序列化器中定义嵌套序列化字段时,需要添加many=True。

5.9K20

如何用 Django 编写 Python web API【Programming(Python)】

Django是Python API开发中最受欢迎的框架之一。 在此快速教程中学习如何使用它。 image.png Django是用于衡量所有其他框架的综合Web框架。...安装DjangoDjango REST框架 接下来,为DjangoDjango REST安装Python模块: $ pip3 install django $ pip3 install djangorestframework...实例化一个新的Django项目 既然您已经为应用程序提供了工作环境,那么您必须实例化一个新的Django项目。...在Django中实现序列化器和视图 为了使Django能够将信息传递给HTTP GET请求,必须将信息对象转换为有效的响应数据。 Django为此实现了序列化器。...,并在 INSTALLED apps 列表的末尾添加 rest 框架: INSTALLED_APPS = [ ...

2.1K00

2. DRF入门

官网文档:https://www.django-rest-framework.org Django REST framework 最新版使用要求: Python(3.6、3.7、3.8、3.9...这期间就会涉及两个专业术语: **序列化:**将python对象转json,后端响应 **反序列化:**将json转为python对象, 后端处理数据需要转换成python对象 之前常用三种序列化方式...之前常用三种序列化方式: Django内置Serializers模块 Serializers是Django内置的一个序列化器,可直接将Python对象转为JSON格式,但不支持反序列化 from django.core...: 序列化器参数 序列化器工作流程: 序列化(读数据:视图里通过ORM从数据库获取数据查询集对象 -> 数据传入序列化器-> 序列化器将数据进行序列化 -> 调用序列化器的.data获取数据 ->...serializer.errors:获取反序列化器验证的错误信息 serializer.data:获取序列化器返回的数据 serializer.save():将验证通过的数据保存到数据库(ORM操作)

1.6K50

FastAPI框架诞生的缘由(下)

由于这一点,一些设计决策,比如获得的验证,序列化和自动模式生成,它需要在很多地方加装饰器。因此,它变得相当冗长。 对于嵌套模式它不能处理的非常好。...因此,如果 JSON 体内又有 JSON 对象,这又是嵌套JSON对象JSON对象,它不能很好的生成文档和验证。 启发 FastAPI 地方 使用 Python 类型提示可以提供很大的编辑器支持。...APIStar 是由 Tom Christie 创建的,他也创建了以下框架Django REST框架 Starlette(FastAPI所基于的) Uvicorn(由 Starlette 和 FastAPI...以及依赖注入系统,安全实用程序,OpenAPI 模式生成等。 技术细节:ASGI 是 Django 核心团队成员开发的新“标准”。尽管他们正在这样做,但它仍然不是“ Python标准”(PEP)。...那是像 Starlette(或FastAPI)这样的框架可以提供的。它是 Starlette 和 FastAPI 的推荐服务器。 FastAPI推荐它为主 Web服务器运行 FastAPI 应用程序

2.3K20

django-rest-framewor

DRF(Django RestFramework)是一套基于Django开发的、帮助我们更好的设计符合REST规范的Web应用的一个Django App,所以,本质上,它是一个Django App。...(直接在官网下载即可) 3 序列化组件    序列化组件的使用:   --get接口设计: 导入序列化组件:from rest_framework import serializers 定义序列化类,...,many默认为False,如果返回的数据是一个列表嵌套字典的多个对象集合,需要改为many=True 返回:将序列化对象的data属性返回即可  {{ 实践代码 }} --post接口设计 url...定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图类中定义post方法 开始序列化:通过我们上面定义的序列化类,创建一个序列化对象,传入参数...token认证步骤:     用户登录,服务器端获取密码,查询用户表,如果存在该用户且第一次登录(或者token过期), 生成token,否则返回错误信息     如果用户不是第一次登录,且token未过期

1.5K10

美多商城项目(五)

2.数据缓存 2.1网站性能优化-数据缓存 前面的文章中我们写过这样一个接口: GET /areas/:获取所有省级地区的信息 假如1分钟之内有500个用户访问了GET /areas/,服务器就需要查询...2.2使用缓存 在Django REST framework中使用缓存,可以通过 drf-extensions扩展来实现。...因为我们序列化时需要的是省市县的名称,所以我们在嵌套序列化的时候使用StringRelatedField方法。系统自动生成的时候,默认是序列化为主键,我们需要对其进行更改。...self.get_serializer(...)创建序列化对象时,会向序列化对象的context属性中补充request参数,可以通过 序列化对象.context['request']来获取request...团队开发注意事项 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词 重点内容回顾-DRF

1.2K30

【愚公系列】2022年04月 Python教学课程 66-DRF框架之APIView

文章目录 一、APIView ---- 一、APIView REST框架提供了一个类APIViewView,APIView类在以下方面与常规类不同,它是继承于View类。...传递给处理程序方法的请求将是REST框架的实例,而不是Django的实例。 RequestHttpRequest处理程序方法可以返回REST框架,而不是Django的。并在响应上设置正确的呈现器。...APIException传入的请求将经过身份验证,并且在将请求调度到处理程序方法之前,将运行适当的权限和/或限制检查。 使用该类与使用常规类几乎相同,像往常一样,传入的请求被调度到适当的处理程序方法。...books = BookInfo.objects.all() # 2、提取所有对象的字段内容 # 初始化生成序列化对象 ser = BookSerializer...(books, many=True) # 使用序列化对象的data方法获取序列化后的结果 data = ser.data # 3、返回所有对象字段内容

59030

测试开发进阶(二十四)

) 403:Forbidden 「*」表示用户得到授权(与401错误相对),但是访问是被禁止的 404:NOT FOUND 「*」用户请求路径不存在 500:INTERNAL SERVER ERROR...「*」服务器发生错误 接口设计 最原始设计 GET 从数据库中获取所有的项目信息 将数据库模型实例转化为字典类型「Json数组」「嵌套字典的列表」 注意:JsonResponse第一个参数默认只能为dict...原始设计小结 创建接口的任务 校验用户数据 将请求的数据(如json格式)转换为模型类对象序列化 将其他格式(json,xml等)转换为程序中的数据类型 将json格式的字符串转换为Django中的模型类对象...操作数据库 将模型类对象转换为响应的数据(如json格式) 序列化程序中的数据类型转换为其他格式(json,xml等) 例如将Django中的模型类对象转换为json字符串 数据增删改查流程 增...校验请求参数 -> 反序列化 -> 保存数据 -> 将保存的对象序列化并返回 删 判断要删除的数据是否存在 -> 执行数据删除 改 判断要修改的数据是否存在 -> 校验请求参数 -> 反序列化 ->

1K50

教你 10 分钟构建一套 RESTful API 服务( 下 )

安装依赖 使用 Django 编写 RESTful API 之前,我们需要先在虚拟环境内安装对应的依赖 具体包含: Django:基础 Web 框架 djangorestframework:Django...的扩展,增加了对快速构建 REST API 的支持 django-rest-swagger:Django 支持的Swagger UI,可以生成 API 接口文档 django-filter:配合 djangorestframework...实现 具体步骤如下: 第 1 步,编写模型,并映射数据库 新建一个类,继承自 django.db.models 中的 Model 对象,新增几个字段,指定数据类型和默认值 # api/restfulapi...第 2 步,序列化模型 使用 djangorestframework 提供的序列化器 ModelSerializer,将上面定义好的模型转换为其他数据格式,比如:JSON 需要注意的是,这里可以序列化所有字段...,也可能只序列化一部分字段 # api/restfulapi/serializers.py from rest_framework import serializers from .models import

1.6K40

DRF框架学习(四)

DRF框架学习(四) 1.视图集对象的action属性 作用: 获取现在要执行的是哪一种操作。 self.action:是字符串类型,目的是获取所有执行的操作。...== 'latest': # 返回latest操作对应的序列化器类 else: # 返回其他操作对应的序列化器类 def get_queryset(self)...在执行视图的dispatch()方法前,会先进行视图访问权限的判断 在通过get_object()获取具体对象时,会进行对象访问权限的判断 DRF框架提供了四个权限控制类: AllowAny允许所有用户...'django_filters', # 需要注册应用, ] # 过滤 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend...DatabaseError): print('[%s]: %s' % (view, type(exc))) response = Response({'detail': '服务器内部错误

2.7K40
领券