DRF安装与使用
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前提
- Python解释器版本要高于3.5以上
- Python解释器要具备pymysql第三方模块
- 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安装与使用的更多相关文章
- drf安装与APIView初步分析
drf安装 1. pip install djangorestframework 2. 在settings文件中注册app : INSTALLED_APPS = [..., 'rest_framewo ...
- vue 前后端分离 接口及result规范 及drf安装使用方法
接口 # 接口:url链接,通过向链接发送不同的类型请求与参数得到相应的响应数据# 1.在视图层书写处理请求的 视图函数# 2.在路由层为视图函数配置 url链接 => 产生接口# 3.前台通 ...
- django drf安装和doc生成
1.打开drf官网https://www.django-rest-framework.org/,把相关的包pip install 2.INSTALLED_APPS添加drf 3.url配置 4.tes ...
- Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分 ...
- 接口与DRF的安装
接口 # 接口:url链接,通过向链接发送不同的类型请求与参数得到相应的响应数据# 1.在视图层书写处理请求的 视图函数# 2.在路由层为视图函数配置 url链接 => 产生接口# 3.前台通 ...
- drf(djangorestframework)
一.django restful_framework 核心思想: 缩减编写api接口的代码 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的 ...
- django 学习之DRF (一)
Django框架基础DRF-01 前后端分离介绍 1.前后端不分离图解 2.前后端分离图解 3.为什么要学习DRF DRF可以帮助我们开发者快速的开发⼀个依托于Django的前后后端分离 ...
- drf之接口规范
web接口 # 请求工具:postman => https://www.getpostman.com/ # 接口:url链接,通过向链接发生不同的类型请求与数据得到相应的响应数据 # http: ...
- DRF概述
目录 一. REST 1. 什么是编程? 2. 什么是REST? 二. 知识准备 1. CBV(class based view) 2. 类方法 classmethod和classonlymethod ...
- 一.前后端分离及drf实现序列化的原理
为什么要进行前后端分离 可pc.app.pad多端适应 SPA开发模式的流行--单页web应用(只有一html页面) 可实现前后端开发职责清(不分离时,前端是通过后端给的变量并渲染出来方式拿到数据! ...
随机推荐
- SQL--临时表的使用
临时表的创建 临时表分为:本地临时表和全局临时表 通俗区分: 本地临时表:只能在当前查询页面使用,新开的查询是不能使用它的 #temp 全局临时表:不管开多少查询页面都可以使用 ##temp ...
- Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化
承接上文:Java函数式编程:一.函数式接口,lambda表达式和方法引用 这次来聊聊函数式编程中其他的几个比较重要的概念和技术,从而使得我们能更深刻的掌握Java中的函数式编程. 本篇博客主要聊聊以 ...
- Spark简单介绍,Windows下安装Scala+Hadoop+Spark运行环境,集成到IDEA中
一.前言 近几年大数据是异常的火爆,今天小编以java开发的身份来会会大数据,提高一下自己的层面! 大数据技术也是有很多: Hadoop Spark Flink 小编也只知道这些了,由于Hadoop, ...
- HPL Study 1
1.安装Linux系统 在虚拟机Vmware上安装CentOS 7系统 2.安装OneApi 安装的时候将文件从桌面拖动到虚拟机安装的时候报错:archive corrupted 解决方法:大文件应采 ...
- "xxx cannot be cast to jakarta.servlet.Servlet "报错解决方式
在做jsp的上机时候同学出现了一个500错误:com.kailong.servlet.ComputeBill cannot be cast to jaka.servlet.Servlet 然后因为我用 ...
- SpringMVC&Maven进阶
3. SpringMVC 3.1 了解SpringMVC 概述 SpringMVC技术与Servlet技术功能等同,均属于web层开发技术 学习路线 请求与响应 REST分割 SSM整合 拦截器 目标 ...
- CSP-J/S 2021 游记
\(\large\texttt{Day -1}\) 晚上好累啊,去集训了,回来之后发现十一点了还码了一会儿,只能祈求上帝明天不会打瞌睡. \(\large\texttt{Day 0}\) 意料中的事情 ...
- Java注解和反射笔记
Java注解和反射笔记 1 注解 1.1 定义 Annotation是从JDK1.5开始引入的技术 作用 不是程序本身,可以对程序作出解释 可以被其他程序(编译器等)读取 格式 @注释名,可以添加一些 ...
- 第2-3-2章 环境搭建-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
目录 5. 文件服务开发 5.1 环境搭建 5.1.1 数据库环境搭建 5.1.2 Nacos环境搭建 5.1.3 Nginx环境搭建 5.1.4 maven工程环境搭建 5. 文件服务开发 全套代码 ...
- i春秋Login
打开是个很普通的登录网页 查看源码看看有没有东西 找到绿色的提示,可能是账号密码,试试 成功进来了,再右键源码,没东西...抓包试试,传repeater里go一下 发现一个奇怪的变量,在request ...