目录
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安装成功了!!!