首页 > 其他分享 >drf

drf

时间:2023-01-28 08:33:05浏览次数:25  
标签:序列化 接口 django framework 视图 Django drf

 4. 序列化

api接口开发,最核心最常见的一个代码编写过程就是序列化,所谓序列化就是把**数据转换格式**。常见的序列化方式:

json,pickle,base64,struct,….

序列化可以分两个阶段:

**序列化**: 把我们识别的数据转换成指定的格式提供给别人。

例如:我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以我们需要把数据进行序列化,变成字符串或者json数据,提供给别人。

**反序列化**:把别人提供的数据转换/还原成我们需要的格式。

例如:前端js提供过来的json数据,对于python而言json就是字符串,我们需要进行反序列化换成字典,然后接着字典再进行转换成模型对象,这样我们才能把数据保存到数据库中。

 

 

 

5. Django Rest_Framework

 

 

核心思想: 大量缩减编写api接口的代码

Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,
不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。REST framework还提供了一个调试API接口 的Web可视化界面来方便查看测试接口。 ![drf_logo](assets/drf_logo.png) 中文文档:https://q1mi.github.io/Django-REST-framework-documentation/#django-rest-framework github: https://github.com/encode/django-rest-framework/tree/master

### 特点

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

 

6. 环境安装与配置

DRF需要以下依赖:

- Python (3.5 以上)
- Django (2.2 以上)

**DRF是以Django子应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)**

 

## 6.1 安装DRF

anaconda (内置180多个python模块,)/ miniconda(内置仅仅是30多个常用模块)

前提是已经安装了django,建议安装在虚拟环境

```python
# conda create -n drfdemo python=3.8
# pip install django==3.2.4  -i https://pypi.douban.com/simple

pip install djangorestframework -i https://pypi.douban.com/simple

# 因为我们需要接下来,需要开发api接口肯定要操作数据,所以安装pymysql
pip install pymysql -i https://pypi.douban.com/simple
```

 

### 6.1.1 创建django项目

cd ~/Desktop
django-admin startproject drfdemo

使用pycharm打开项目,设置虚拟环境的解析器,并修改manage.py中的后缀参数。

 

 

## 6.2 添加rest_framework应用

在**settings.py**的**INSTALLED_APPS**中添加'rest_framework'。

```python
INSTALLED_APPS = [
    ...
    'rest_framework',
]
```

接下来就可以使用DRF提供的功能进行api接口开发了。在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤:

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

 

## 6.3 体验drf完全简写代码的过程

5个接口:
    添加1条数据
    获取所有数据
    获取1条数据
    更新1条数据
    删除1条数据

# 终端下执行:
django-admin startapp stuapi # 提供原生的django代码实现的API接口
django-admin startapp students # 提供drf代码实现的API接口

 

## 6.3.1. 创建模型操作类

 

 

标签:序列化,接口,django,framework,视图,Django,drf
From: https://www.cnblogs.com/TodayWind/p/17069625.html

相关文章

  • drf快速入门
     1.Web应用模式在开发Web应用中,有两种应用模式:1.前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的。[前后端不分离](assets/depended_front......
  • 【Django drf】 序列化类常用字段类和字段参数 定制序列化字段的两种方式 关系表外键
    目录序列化类常用字段类和字段参数常用字段类常用字段参数选项参数通用参数序列化类高级用法之sourcesource填写类中字段source填写模型类中方法source支持跨表查询定制序......
  • Django接入drf_yasg2 API接口文档-完整操作(包含错误处理)
    drf_yasg2的简介:drf-yasg是DjangoRestFramework的一个扩展,使⽤drf_yasg2下载⾃动⽣成的api⽂档的json或yaml⽂件配置项。drf_yasg2的安装:pipinstalldrf-yasg......
  • drf-spectacular
    介绍drf-spectacular是为DjangoRESTFramework生成合理灵活的OpenAPI3.0模式。它可以自动帮我们提取接口中的信息,从而形成接口文档,而且内容十分详细,再也不用为写接口文......
  • drf快速使用 CBV源码分析 drf之APIView分析 drf之Request对象分析
     目录序列化和反序列化drf介绍和安装使用原生django写接口djangoDRF安装drf快速使用模型序列化类视图路由datagrip使用postman测试接口CBV源码分......
  • drf-Response drf-request.data 序列化类的使用 反序列化新增、修改、删除数据
    目录APIView基本使用使用原生Django写接口(View+JsonResponse)使用drf写接口(APIView+drfResponse)drf两种导入View的方式drfResponseAPIView源码分析Request类源码......
  • 3. DRF进阶之DRF视图和常用功能
    DRF视图和常用功能DRF视图DRF视图类介绍在DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。View:Django默认的视图基类,负责将视图连接到URL,HTTP请求方法......
  • django DRF
    博客目录web应用模式api接口接口测试工具postmanrestful规范drf快速使用CBV源码分析drf之APIView分析drf之Request对象分析......
  • DRF06-视图架构
    本文探究Django以及DRF的视图的层层递进,从源码学习视图的不断完善和丰富01最简单的视图FBVurlpatterns=[path('test01/',views.test01)]只要在浏览器上请求......
  • DRF解决跨域问题
    DjangoRestFramework提供了corsheaders模块解决跨域问题安装模块pip3.9installdjango-cors-headers注册应用#注册corsheaders模块INSTALLED_APPS=[......