一、 Django REST framework介绍

Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API。

官网:https://www.django-rest-framework.org/

中文文档:https://q1mi.github.io/Django-REST-framework-documentation/

二、Django REST framework安装和配置

1、安装

pip install djangorestframework

2、配置

如果想要获取一个图形化的页面,需要将 rest_framework 注册到项目的INSTALL_APPS中。

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework'
'Api.apps.ApiConfig',
]

三、基于Django实现RESTful API

1、路由

from django.urls import path

from Api.views import Users

app_name = 'Api'

urlpatterns = [
path('users/', Users.as_view(), name='users')
]

2、视图

class Users(View):
def get(self, request, *args, **kwargs):
data = {
'code': 0,
'data': 'response data'
}
return JsonResponse(data=data, status=200) def post(self, request, *args, **kwargs):
data = {
'code': 0,
'data': 'response data'
}
return JsonResponse(data=data, status=200)

3、使用postman分别发送get和post请求

(1)、get请求

(2)、post请求

(3)注意:

状态码一般两种写入方式,一种是直接写在data中,但是这种写入不是真正意义上的改变状态码,第二种就是上面中的例子,写入JsonResponse中

另外,发送post请求需要csrf_token豁免。

四、基于Django RESTful Framework框架实现

1、路由

from django.urls import path, include

from Api.views import Users, TestView

app_name = 'Api'

urlpatterns = [
path('users/', Users.as_view(), name='users'),
path('test/', TestView.as_view(), name='test')
]

2、视图

from django.http import JsonResponse
from django.shortcuts import render
from django.views import View
from rest_framework.response import Response
from rest_framework.views import APIView class TestView(APIView):
def dispatch(self, request, *args, **kwargs):
"""
请求到来之后,都要请求dispatch方法,dispath方法根据不同的请求方式出发get/post/put等方法
注意:APIView中,dispath方法有好多好多功能
"""
return super().dispatch(request, *args, **kwargs) def get(self, request, *args, **kwargs):
data = {
"status": 200,
'data': 'get success'
}
return Response(data, status=201) def post(self, request, *args, **kwargs):
data = {
'status': 200,
'data': 'post success'
}
return Response(data, status=201)

五、APIView中的方法

1、renderer_classes  渲染的类

2、parser_classes 解析转换的类

3、authentication_classes  认证的类

4、throttle_classes 节流的类,控制请求频率

5、permission_classes 权限的类

6、content_negotiation_class 内容过滤类

7、metadata_class 元信息的类

8、versioning_class 版本控制的类

9、as_view()

调用父类中的as_view ->dispatch方法

dispatch方法被重写

initialize_request 使用django的request构建了一个REST中的Request

initial

  perform_authentication

  执行用户认证,遍历认证器,如果认证成功返回一个元祖,元祖中的第一个元素就是user,第二个元素就是auth,token

  check_permissions

  检查权限,遍历我们的权限检测器,只要有一个权限检测没有通过,就直接显示权限被拒绝,所有权限都满足,才算是拥有权限。

  check_throttles 

  检测频率,遍历频率限制器,如果验证不通过,就需要等待 

  csrf_exempt

  所有APIView的自雷都是csrf豁免的

六、错误码

封装status模块中,实际上就是一个常量类

七、针对视图函数的包装

1、CBV

  APIView

2、FBV

  添加@api_view装饰器

  必须手动指定允许的请求方法

  

Django REST Framework框架介绍以及简单使用的更多相关文章

  1. Django REST framework框架介绍和基本使用

    Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...

  2. Django Rest framework 框架之认证使用和源码执行流程

    用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...

  3. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  4. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  5. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  6. Django_rest framework 框架介绍

    restful介绍  restful协议 一切皆是资源,操作只是请求方式 URL 设计 原先的URL设计方式 在url 中体现出操作行为 /books/ books /books/add/ addbo ...

  7. Django Rest framework 框架

    一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...

  8. .NET Framework 框架的一些简单介绍

    20世纪90年代以来出现的3种典型的组件技术: 1)OMC(对象组件模型)的CORBA2)Microsoft的COM/DCOM3)Sun公司的JavaBeans 在2002年,微软发布了.NET框架的 ...

  9. 基于Django rest framework 和Vue实现简单的在线教育平台

      一.基于api前端显示课程详细信息 1.调整Course.vue模块 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...

  10. Django rest framework框架中有哪些组件

    认证 权限(授权) 用户访问次数/频率限制 版本 解析器(parser) 序列化 分页 路由系统 视图 渲染器 认证 自定义认证的类 """ from rest_fram ...

随机推荐

  1. FastAPI安全防护指南:构建坚不可摧的参数处理体系

    扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长 探索数千个预构建的 AI 应用,开启你的下一个伟大创意 第一章:输入验证体系 1.1 类型安全革命 from pydantic impor ...

  2. npm 如何更新项目最新依赖包

    NPM 是什么? Node 软件包管理器(NPM)提供了各种功能来帮助你安装和维护项目的依赖关系. 由于错误修复.新功能和其他更新,依赖关系可能会随着时间的推移而变得过时.你的项目依赖越多,就越难跟上 ...

  3. Dockerfile 语法与常用命令

    转发请注明出处: 一.Dockerfile 核心语法规则 指令大写:所有指令必须大写(如 FROM, RUN) 顺序执行:指令按顺序从上到下执行 分层构建:每条指令生成一个镜像层,修改上层不会影响下层 ...

  4. SpringBoot的yml文件报org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here in 'reader', line 11, column 16:

    报错内容如下: 报错代码如下: 1 spring: 2 cloud: 3 gateway: 4 routes: 5 - id: query_route 6 uri: https://baidu.org ...

  5. [源码系列:手写spring] IOC第一节:简单bean容器

    本专栏带领大家手写一遍spring的核心代码,包括IOC,AOP,三级缓存... 第一节较为简单,后面的章节会逐渐提升代码量和复杂度,喜欢的同学记得订阅哦  ̄▽ ̄ 定义一个简单的bean容器BeanF ...

  6. 理解PostgreSQL和SQL Server中的文本数据类型

    理解PostgreSQL和SQL Server中的文本数据类型 在使用PostgreSQL时,理解其文本数据类型至关重要,尤其对有SQL Server背景的用户而言.尽管两个数据库系统都支持文本存储, ...

  7. Selenium自动安装并引用浏览器驱动的方法

    以往的程序是先下载和把浏览器驱动放在指定目录,然后在基本中引用驱动完成整个浏览器环境配置 刚好在网上看到一个更加简便的方法,记录下来 1.先安装第三方库webdriver_manager,pip in ...

  8. Asp.net core 少走弯路系列教程(二)HTML 学习

    前言 新人学习成本很高,网络上太多的名词和框架,全部学习会浪费大量的时间和精力. 新手缺乏学习内容的辨别能力,本系列文章为新手过滤掉不适合的学习内容(比如多线程等等),让新手少走弯路直通罗马. 作者认 ...

  9. java 单链表实现栈

    package com.company;public class Main { //用链表模拟栈 public static void main(String[] args) { // write y ...

  10. 支持命令行输入中文(例如redis-cli输入中文)

    修改 cmd 控制台默认代码页编码的几种方法[GBK.UTF-8]_FKNIGHT 的博客-CSDN博客_修改cmd编码 1.进入redis-cli.exe所在文件夹 2.在路径栏输入cmd回车 3. ...