DRF安装与使用

一、web应用模式(前后端不分离&前后端分离)

在开发web应用中,有两种应用模式。前后端不分离,如BBS项目、前后端分离,后端人员只写后端一点都不需要动前端代码、只负责写接口

  • 前后端不分离:客户端看到的内容和所有页面效果都是服务端提供的



  • 前后端分离:前端只负责页面(HTML、CSS、js)单独分离到一个服务端,Python服务端只需要返回数据即可



二、API接口

1、API接口概念讲解

API接口即应用程序编程接口(Applicant Programming Interface),应用程序对外提供了一个操作数据的入口,这个入口可以是函数或类方法也可以是一个URL地址或一个网址。当客户端调用这个入口、应用程序则会执行相应的代码操作、给客户端完成对应的功能。这样可以减小前后端之间的合作成本,简单的可以理解的话API接口就是前后端信息交互的媒介

2.IPA接口测试工具postman

作为后端开发写完的代码一定要自己测试一下,哪怕是动了一个逗号也要亲自测试一下,但是问题又来了,在哪里测试呢?哈哈这还不简单!浏览器呀它是它是天然的测试工具,但是哥们儿!它功能不全只能测试get请求,其他的还是需要自己写代码才能实现。所以咱就有了专门用来测试的工具postman,下载安装也相当方便,官网下载直接双击安装即可。





3.RESTful API规范

REST全称为Representational State Transfer即表述性状态转移,RESTful是一种专门为web开发而定义API接口的设计风格、尤其是适用于前后端分离的应用模式中。这种风格的理念是后端开发的任务就是提供数据、对外提供的是数据资源的访问接口、所以咋定义接口时客户端访问的URL路径就表示这种要操作的数据资源。而对于数据资源分别使用post、get、delete、update等请求动作来表达对数据的增删改查。RESTful规范是一种通用规范、不限制语言和开发框架的使用。因此、我们当然可以使用任何一门编程语言、任何框架都可以实现RESTful规范的API接口。

4.幂等性

接口实现过程中、会存在幂等性,所谓的幂等性通过客户端发起多次同样的请求时,是否对于服务端里面的资源产生不同的结果来判断的。如果多次请求结果一样则是幂等性接口,反之非幂等性接口。

请求方式 是否幂等 是否安全
GET 幂等 安全
POST 不幂等 不安全
DELETE 幂等 不安全
PATCH 幂等 不安全

5.序列化

API接口开发最核心最常见的一个代码编写过程就是序列化,所谓的序列化就是转换数据格式,其有两个阶段,一是序列化:把后端的数据编程字符串或者json数据提供给别人、二是反序列化:前端js提供的数据是json格式数据,对于Python而言json就是字符串需要反序列化成字典、将字典转换成模型对象,这样才能把数据保存到数据库中

三、DRF框架

1.DRF定义

Django REST framework是一个在Django基础上的web应用开发框架、可以快速开发REST API接口应用。在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,而且还封装了丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。REST framework也提供了一个API的web可视化界面来方便查看测试接口。

2.DRF的特点

  • 提供了定义序列化器Serializer的方法
  • 提供了丰富的类视图、扩展类、简化视图编写
  • 丰富的定制层级:函数视图、类视图、视图集到自动生成API
  • 提供了认证、权限、限流、过滤、分页等功能
  • 内置了限流系统
  • 具有可视化API web界面
  • 具有可扩展性、而且插件丰富

3.安装DRF前提

  1. Python解释器版本要高于3.5以上
  2. Python解释器要具备pymysql第三方模块
  3. Django框架版本要高于2.2以上

4.DRF的安装

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

5.DRF基本使用

该框架只能在Django框架的基础上使用、所以需要先创建Django框架项目
# 在settings.py文件中注册

# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
'rest_framework', # 在这里添加即可
]
# 在urls.py文件中开设路由

from django.contrib import admin
from django.urls import path
from app01 import views urlpatterns = [
path('admin/', admin.site.urls),
path('', views.Index.as_view()), # 开设的路由
]
# 在views.py文件中写简单的视图类 目的是验证drf框架是否安装成功

from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response # Create your views here. class Index(APIView):
def get(self, request, *args, **kwargs):
return Response({'name':'almira'})

如下图就说明咱的drf安装成功了!!!

DRF安装与使用的更多相关文章

  1. drf安装与APIView初步分析

    drf安装 1. pip install djangorestframework 2. 在settings文件中注册app : INSTALLED_APPS = [..., 'rest_framewo ...

  2. vue 前后端分离 接口及result规范 及drf安装使用方法

    接口 # 接口:url链接,通过向链接发送不同的类型请求与参数得到相应的响应数据​# 1.在视图层书写处理请求的 视图函数# 2.在路由层为视图函数配置 url链接 => 产生接口# 3.前台通 ...

  3. django drf安装和doc生成

    1.打开drf官网https://www.django-rest-framework.org/,把相关的包pip install 2.INSTALLED_APPS添加drf 3.url配置 4.tes ...

  4. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分 ...

  5. 接口与DRF的安装

    接口 # 接口:url链接,通过向链接发送不同的类型请求与参数得到相应的响应数据​# 1.在视图层书写处理请求的 视图函数# 2.在路由层为视图函数配置 url链接 => 产生接口# 3.前台通 ...

  6. drf(djangorestframework)

    一.django restful_framework 核心思想: 缩减编写api接口的代码 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的 ...

  7. django 学习之DRF (一)

    Django框架基础DRF-01 前后端分离介绍 1.前后端不分离图解 2.前后端分离图解     3.为什么要学习DRF    DRF可以帮助我们开发者快速的开发⼀个依托于Django的前后后端分离 ...

  8. drf之接口规范

    web接口 # 请求工具:postman => https://www.getpostman.com/ # 接口:url链接,通过向链接发生不同的类型请求与数据得到相应的响应数据 # http: ...

  9. DRF概述

    目录 一. REST 1. 什么是编程? 2. 什么是REST? 二. 知识准备 1. CBV(class based view) 2. 类方法 classmethod和classonlymethod ...

  10. 一.前后端分离及drf实现序列化的原理

     为什么要进行前后端分离 可pc.app.pad多端适应 SPA开发模式的流行--单页web应用(只有一html页面) 可实现前后端开发职责清(不分离时,前端是通过后端给的变量并渲染出来方式拿到数据! ...

随机推荐

  1. Salesforce LWC学习(四十) dynamic interaction 浅入浅出

    本篇参考: Configure a Component for Dynamic Interactions in the Lightning App Builder - Salesforce Light ...

  2. 一、docker的介绍

    一.虚拟化和容器 虚拟化介绍 操作系统层虚拟化是指通过划分一个宿主操作系统的特定部分,产生一个个隔离的操作执行环境.操作系统层的虚拟化是操作系统内核直接提供的虚拟化,虚拟出的操作系统之间共享底层宿主操 ...

  3. 详解pyautogui模块

    一.安装 pip install pyautogui 或者 pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple pyautogui 二.全 ...

  4. freeswitch的mod_curl模块

    概述 有时候,我们需要在呼叫的过程中,或过程后调用web api接口. freeswitch的mod_curl模块可以很方便的实现web api的接口调用. mod_curl模块默认不安装,需要进入模 ...

  5. 第一百零八篇:最常用的基本数据类型(Number,String类型)

    好家伙, 1.Number类型 从名称中我们可以得出,这是一个存放数值的类型, 不同的数值类型相应地也有不同的数值字面量格式 number类型可以储存不同进制的数(不常用就是了) 八进制:在数前加一个 ...

  6. 关于model,modelsmanager,db以及phql之间关系的梳理

    摘要: model在前,db在model后面作为驱动支持.phql是phalcon自创的查询语言,主要特性是在sql语句中用模型名替代表名,其聪明地解析模型类,包括关联关系等,还支持参数绑定.mode ...

  7. 医疗在线OLAP场景下基于Apache Hudi 模式演变的改造与应用

    背景 在 Apache Hudi支持完整的Schema演变的方案中(https://mp.weixin.qq.com/s/rSW864o2YEbHw6oQ4Lsq0Q), 读取方面,只完成了SQL o ...

  8. Day33:String类及其常用方法详解

    String类 1.1 String类概述 Java中字符串属于对象,String类用于创建和操作字符串. 最简单的字符串创建:直接通过String创建 String str="工地佬&qu ...

  9. Python 什么是flask框架?快速入门(flask安装,登录,新手三件套,登录认证装饰器,配置文件,路由系统,CBV)

    目录 一:Python flask框架 前言 补充一下,我们前面学习的库都是叫模块,那么框架与库的区别? 二:flask 框架概述 1.简介 2.须知: 3.flask框架的优势 三:flask 安装 ...

  10. choices参数

    目录 一:choices参数 1.choices参数作用 2.列举: 3.choices效果 二:choices使用 1.创建字段类型 2.验证choices 3.使用测试脚本 4.将manage.p ...