【接口开发实战(二)】学院信息管理模块接口开发

本文详细介绍了如何基于Django和Django REST framework构建RESTful API。从Django REST framework的介绍、安装配置,到数据序列化、编写视图、注册接口以及运行调试的步骤,全面阐述了开发过程。重点讲解了序列化的作用,如何通过ModelSerializer简化数据操作,并提供了视图和路由配置的示例。
摘要由CSDN通过智能技术生成

前情:

《【接口开发实战(一)】基于Django的学院信息管理模块后台开发》



在前后端分离的应用模式中,我们通常将后端开发的每一视图都当成一个接口或者API,前端通过访问接口来对数据进行增删改查。

1)Django REST framework

官方网站: “Django REST framework is a powerful and flexible toolkit for building Web APIs.”

  • Django REST framework 是一个强大且灵活的工具包,用于构建 Web API。

Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API。

2)Django REST framework安装和配置

1、安装:

pip install djangorestframework

2、配置:

如果想要获取一个图形化的页面,需要将 rest_framework 应用注册到项目的INSTALL_APPS中。
在这里插入图片描述
还可以进行全局设置,分页和API使用权限问题,指定管理员使用:

在这里插入图片描述

3)基于Django实现RESTful API

3.1 数据序列化

假如我们要传递某个字段给前端,我们可以首先进行序列化,序列化的类要继承serializer 方法。

serializers主要作用:

  • 将queryset、model实例等进行序列化,转化成json格式,返回给用户(api接口)。
  • 将post与patch/put的上来的数据进行验证。
  • 对post与patch/put数据进行处理。

什么是serializers(序列化)?

官网:“Serializers allow complex data such as querysets and model instances to be converted to native Python datatypes that can then be easily rendered into JSON, XML or other content types. Serializers also provide deserialization, allowing parsed data to be converted back into complex types, after first validating the incoming data.”

  • 序列化程序允许将查询集和模型实例等复杂数据转换为原生 Python 数据类型,然后可以轻松地将其呈现为 JSON、XML或其他内容类型
  • 序列化程序还提供反序列化,允许在首先验证传入数据后将解析的数据转换回复杂类型。

简单理解:序列化就是数据库把数据发给前端显示,反序列化是从前端获取数据存到数据库

在app应用文件夹中新建serializers.py,进行数据序列化:

在这里插入图片描述

  • 因为是基于model字段去开发的,所以建议使用ModelSerializer。
  • ModelSerializer在Meta中设置fields字段,系统会自动进行映射,省去每个字段再写一个field。有三种方式。
  • 如果想要自定义验证逻辑,可以用到serializers.ValidationError,这里暂不展开,有兴趣的可以参考:https://blog.csdn.net/l_vip/article/details/79156113

3.2 编写Views(视图)

Django用"视图"这个概念封装处理用户请求并返回响应的逻辑

  • 视图是一个可调用对象,它不仅可以是基于函数,也可以是基于类的。
  • 相比较于函数,基于类的视图组织与特定HTTP方法相关的代码(GET、POST等) 可以通过单独的方法而不是条件分支来解决。

Django中的View是所有基于类的view的父类,它负责将视图连接到URL、HTTP方法调度(GET、POST等)和其它简单的功能

在这里插入图片描述

3.3 在路由中注册接口

路由简单的来说就是根据用户请求的 URL 链接来判断对应的处理程序,并返回处理结果,也就是 URL 与 Django 的视图建立映射关系

  • Django 路由在 urls.py 配置,urls.py 中的每一条配置对应相应的处理方法。

在url.py中,添加api的路由配置:
在这里插入图片描述

3.4 运行调试

浏览器访问:

在这里插入图片描述
GET请求:
在这里插入图片描述

POST请求:

在这里插入图片描述
查看数据库,确实新增了:
在这里插入图片描述



【部分内容参考自】

  • Django REST Framework框架介绍以及简单使用:https://www.cnblogs.com/huiyichanmian/p/12256203.html
  • Django Rest Framework 序列化关系模型:https://segmentfault.com/a/1190000010024982
  • django rest framework serializers小结:https://blog.csdn.net/l_vip/article/details/79156113
  • Django REST Framework中的视图view、viewset:https://www.pianshen.com/article/4379155016/
  • rest_framework框架入门(一):https://blog.csdn.net/dakengbi/article/details/90764412
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值