Django API 开发:博客系统接入 API(下)

简介: 我们的下一个项目是使用 Django REST Framework 功能的博客 API。 它将具有用户,权限,并允许完整的 CRUD(创建-读取-更新-删除)功能。 我们还将探索视图集,路由器和文档。在本文中,我们将构建博客系统基本的 API 部分。

Views

最后一步是创建我们的视图。 Django REST Framework 具有几个有用的通用视图。 我们已经在 Library API 和 Todos API 中都使用ListAPIView来创建一个只读端点集合,实质上是所有模型实例的列表。 在 Todos API 中,我们还将RetrieveAPIView用作只读的单个端点,这类似于传统 Django 中的详细信息视图。


对于我们的 Blog API,我们希望将所有可用的博客文章列出为读写端点,这意味着使用ListCreateAPIView,它类似于我们之前使用的 ListAPIView,但允许写操作。 我们还希望使各个博客帖子可供阅读,更新或删除。 可以肯定的是,有一个内置的通用 Django REST Framework 视图正用于此目的:RetrieveUpdateDestroyAPIView。 这就是我们在这里使用的。


更新view.py文件,如下:

# posts/views.py
from rest_framework import generics
from .models import Post
from .serializers import PostSerializer
class PostList(generics.ListCreateAPIView): 
    queryset = Post.objects.all() 
    serializer_class = PostSerializer
class PostDetail(generics.RetrieveUpdateDestroyAPIView): 
    queryset = Post.objects.all()
    serializer_class = PostSerializer


在文件的顶部,我们从 Django REST Framework 以及模型和序列化器文件导入泛型。 然后,我们创建两个视图。 PostList 使用通用的 ListCreateAPIView,而 PostDetail 使用 RetrieveUpdateDestroyAPIView。


我们要做的就是更新通用视图以从根本上改变给定 API 端点的行为,这非常令人惊讶。 这是使用诸如 Django REST Framework 之类的功能齐全的框架的优势:所有这些功能都是可用的,经过测试的并且可以正常使用。 作为开发人员,我们不必在这里重新发明轮子。


至此,我们的 API 现在已经完成,我们真的不必自己编写太多代码。 在接下来的章节中,我们将对 API 进行其他改进,但是值得一提的是,它已经执行了我们想要的基本列表和 CRUD 功能。 是时候使用 Django Rest Framework 的可浏览 API 进行测试了。

Browsable API

启动本地服务器以与我们的 API 进行交互。

(blogapi) $ python manage.py runserver


然后转到 http://127.0.0.1:8000/api/v1/ 查看博客列表终端。


网络异常,图片无法展示
|


该页面以 JSON 格式显示了我们的博客文章列表(目前只有一个)。 注意,GET 和 POST 方法都被允许。


现在,让我们确认是否存在我们的模型实例终结点,该终结点与单个帖子而不是所有帖子的列表有关。


转到 http://127.0.0.1:8000/api/v1/1/.


网络异常,图片无法展示
|


您可以在标头中看到支持 GET,PUT,PATCH 和 DELETE,但不支持 POST。 实际上,您可以使用下面的 HTML 表单进行更改,甚至可以使用红色的“ DELETE”按钮删除实例。


让我们尝试一下。 最后用其他文字(已编辑)更新标题。 然后点击“ PUT”按钮。

网络异常,图片无法展示
|


通过单击页面顶部的链接返回到“帖子列表”视图,或直接导航到 http://127.0.0.1:8000/api/v1/,您也可以在那里查看更新的文本。


网络异常,图片无法展示
|


总结

此时,我们的 Blog API 完全可用。 但是,有一个大问题:任何人都可以更新或删除现有博客文章! 换句话说,我们没有任何权限。 在下一篇文章中,我们将学习如何应用权限来保护我们的 API。

相关文章
|
7天前
|
API 开发工具 数据库
开发一份API接口,需要注意这些,看你做到了几项
本文介绍了设计API接口时需注意的关键点,包括数字签名、敏感数据加密与脱敏、限流、参数校验、统一返回与异常处理、请求日志记录、幂等设计、数据量限制、异步处理、参数定义、完整文档及开发者对接SDK等内容,旨在帮助开发者设计出安全、稳定、易维护的API接口。
46 6
开发一份API接口,需要注意这些,看你做到了几项
|
14天前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
41 3
如何使用Python开发API接口?
|
7天前
|
Python
Django 框架的路由系统
Django 框架的路由系统
25 6
|
10天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
9天前
|
JSON 前端开发 API
后端开发中的API设计与文档编写指南####
本文探讨了后端开发中API设计的重要性,并详细阐述了如何编写高效、可维护的API接口。通过实际案例分析,文章强调了清晰的API设计对于前后端分离项目的关键作用,以及良好的文档习惯如何促进团队协作和提升开发效率。 ####
|
7天前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
23 1
|
10天前
|
监控 搜索推荐 安全
探究亚马逊详情API接口:开发与应用
在数字化时代,亚马逊作为全球领先的电商平台,为商家和消费者提供了丰富的商品信息和便捷的购物体验。本文深入探讨了亚马逊详情API接口的获取与运用,帮助开发者和商家实时监控商品数据、分析市场趋势、优化价格策略、分析竞争对手、构建推荐系统及自动化营销工具,从而在竞争中占据优势。文章还提供了Python调用示例和注意事项,确保API使用的安全与高效。
35 3
|
14天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
40 4
|
13天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
22 2
|
20天前
|
前端开发 关系型数据库 API
深入浅出后端开发——从零到一构建RESTful API
本文旨在为初学者提供一个关于后端开发的全面指南,特别是如何从零开始构建一个RESTful API。我们将探讨后端开发的基本概念、所需技术栈、以及通过实际案例展示如何设计和实现一个简单的RESTful API。无论你是完全的新手还是有一定编程基础的开发者,这篇文章都将为你提供实用的知识和技巧,帮助你在后端开发的道路上迈出坚实的一步。

热门文章

最新文章