Django之REST framework

REST定义

REST即Representational State Transfer的缩写。维基百科称其为“具象状态传输”,国内大部分人理解为“表现层状态转化”。RESTful是一种开发理念,而REST是设计风格不是一种标准。

RESTful架构

如果一个架构符合REST原则,就称它为RESTful架构。
  • 每一个URL代表一种资源;
  • 客户端和服务器之间,传递这种资源的某种表现层;
  • 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

RESTful设计方法

http://www.ruanyifeng.com/blog/2014/05/restful_api.html

REST接口开发的核心任务

视图中做的最主要的三件事:

  • 将请求的数据(如JSON格式)转换为模型类对象
  • 操作数据库
  • 将模型类对象转换为响应的数据(如JSON格式)

视图的核心作用

  • 将数据库数据序列化为前端所需要的格式,并返回;
  • 将前端发送的数据反序列化为模型类对象,并保存到数据库中。

    序列化Serialization

    将程序中的一个数据结构类型转换为其他格式(字典、JSON、XML等),例如将Django中的模型类对象装换为JSON字符串,这个转换过程我们称为序列化。反之,将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象,这个过程我们称为反序列化。

Django REST framework 简介

Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具,通常简称为DRF框架 或 REST framework,DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。

特点

  • 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
  • 提供了丰富的类视图、Mixin扩展类,简化视图的编写;
  • 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
  • 多种身份认证和权限认证方式的支持;
  • 内置了限流系统;
  • 直观的 API web 界面;
  • 可扩展性,插件丰富

    REST API的视图的增删改查

  • 增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
  • 删:判断要删除的数据是否存在 -> 执行数据库删除
  • 改:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
  • 查:查询数据库 -> 将数据序列化并返回

DRF工程搭建

  1. 安装DRF
    pip install djangorestframework
    
  2. 添加rest_framework应用:在settings.py的INSTALLED_APPS中添加'rest_framework'。
    INSTALLED_APPS = [
     ...
     'rest_framework',
    ]
    

序列化器的作用:

  • 进行数据的校验
  • 对数据对象进行转换

关联字段序列化的6种方法

https://blog.csdn.net/Ch_zhenhua/article/details/81233303

反序列化的使用及三种验证方法

https://blog.csdn.net/wang785994599/article/details/80796860

REST framework视图说明

https://blog.csdn.net/wang785994599/article/details/80797901

视图集

https://blog.csdn.net/wang785994599/article/details/80799142

REST framework还提供了路由模块以及其他功能(包括认证、限流、过滤、权限、排序、分页、版本、异常处理、自动生成接口文档等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值