首页 > 其他分享 >DRF安装与使用

DRF安装与使用

时间:2023-01-30 17:45:29浏览次数:33  
标签:接口 django API 视图 使用 序列化 安装 DRF

目录

DRF安装与使用

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

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

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

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

二、API接口

1、API接口概念讲解

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

2.IPA接口测试工具postman

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

3.RESTful API规范

image

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就是字符串需要反序列化成字典、将字典转换成模型对象,这样才能把数据保存到数据库中
image

三、DRF框架

image

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

标签:接口,django,API,视图,使用,序列化,安装,DRF
From: https://www.cnblogs.com/almira998/p/17076799.html

相关文章

  • mac m1使用oracle sqlplus
    环境macstudio(2022)ChipAppleM1Maxoracle官网https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html只有Intelx86的......
  • 使用python的tempfile模块创建临时文件
    什么样的情况下需要我创建临时文件呢?我很早就知道tempfile这个模块,但一直没有使用过它,也没有兴趣去研究它,一度认为自己用不到这个模块。存在即合理,合理的才能存在,想来是我不......
  • 使用pyfakefs在内存中创建文件,而非硬盘
    pyfakefs是一个假文件系统,它模拟的是python的文件系统,简单来说,它提供了和python的os模块,Path模块一样的功能,所有的文件操作,例如创建,修改,删除,重命名等操作都是在内存中进行......
  • 将自己写的组件放入npm仓库使用
    前言有时候我们经常封装一些通用的组件在项目当中,而这些组件可能会在多个项目中使用,以往的做法是直接粘贴复制过来,但其实放入npm仓库会更方便,这里介绍的是公开的npm包......
  • 将docker容器作为进程来使用
    1.容器只是一个进程使用docker部署一个mysql服务,或者一个nginx服务,这些服务是持久存在的,加上环境的隔离特性,我一直都将docker容器的使用限定在容器这个范围内。在容器内,启......
  • python使用正则表达式实现字符串替换
    python的字符串提供了replace方法,可以将子串替换成其他字符串,例如下面的代码name='flask_script'name=name.replace('_','-')print(name)#flask-script替换的前提......
  • vue中使用Echarts map图实现下钻至县级并展示当前地区的数据饼图
    先看效果图:第一层:    第二层: 第三层: Demo地址: https://github.com/blacksige/map-chart ......
  • vue3+vite项目中使用qiankun的方式
    需要安装的依赖: "vite-plugin-qiankun":"1.0.10","vue-tsc":"^0.40.7""vite":"3.0.9","@vitejs/plugin-vue":"^1.6.0","vue":"^3.2.37","vue-router":......
  • rpa使用muggle_ocr自动识别验证码
    1.安装包pip3installrpa=1.48.1pip3installmuggle-ocr=1.0.3如果muggle-ocr使用pip3安装不了,只能手动安装。百度网盘:https://pan.baidu.com/s/1K3Tq9Vz-u3oQ8tWU......
  • 使用Blender导出多个动画的GLTF模型
    准备工作:安装Blender准备好多套fbx格式的模型动画首先,加载进来模型。加载图片,将模型名称和动画名称都修改成相应的动作名称点击左下角按钮,切换到非线性动画在列表内会发现......