Django REST Framework框架介绍以及简单使用
一、 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框架介绍以及简单使用的更多相关文章
- Django REST framework框架介绍和基本使用
Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...
- Django Rest framework 框架之认证使用和源码执行流程
用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...
- Django Rest Framework框架 ---- url控制器
Django Rest Framework框架 ---- url控制器
- web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝
web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...
- web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍
web前端Vue+Django rest framework 框架 生鲜电商项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...
- Django_rest framework 框架介绍
restful介绍 restful协议 一切皆是资源,操作只是请求方式 URL 设计 原先的URL设计方式 在url 中体现出操作行为 /books/ books /books/add/ addbo ...
- Django Rest framework 框架
一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...
- .NET Framework 框架的一些简单介绍
20世纪90年代以来出现的3种典型的组件技术: 1)OMC(对象组件模型)的CORBA2)Microsoft的COM/DCOM3)Sun公司的JavaBeans 在2002年,微软发布了.NET框架的 ...
- 基于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 ...
- Django rest framework框架中有哪些组件
认证 权限(授权) 用户访问次数/频率限制 版本 解析器(parser) 序列化 分页 路由系统 视图 渲染器 认证 自定义认证的类 """ from rest_fram ...
随机推荐
- 【Node.js】npm配置国内镜像源
[服务器]npm配置国内镜像源 零.问题 配置Node.js的HTTPS的时候,下载不了 一.解决 这里使用的是淘宝的镜像: npm config set registry https://regis ...
- 新建一个空的 ASP.NET Core Web Application
前言 Visual Studio 2017 下操作 1. 新建项目 2. 新建空的 ASP.NET Core Web Application 确定后,需要一小点的时间等待依赖库载入... 3. 新建完 ...
- Firebug Lite——在没有调试工具的浏览器(如IE6-7)中调试
现在做前端的应该是蛮幸福的,现在主流的浏览器都自带了调试工具,如 Firefox Chrome IE8+ 等,方便了网页开发时的一些调试.但是类似IE6的调试还是非常的不方便.但是发现一个调试神器-- ...
- dijkstra的封装模版
/** - swj - * />_____フ | _ _| /`ミ _x ノ / | / ヽ ? / ̄| | | | | ( ̄ヽ__ヽ_)_) \二つ **/ #include <bits ...
- Scrcpy使用入门
1.下载Scrcpy GitHub地址:https://github.com/Genymobile/scrcpy 网盘地址:https://pan.baidu.com/s/1NKosSkQJLbmhz ...
- windows10环境下,remote wsl链接wsl ubuntu使用ubuntu 开发环境,报错:VS Code server for WSL closed unexpectedly check WSL terminal for more details
报错提示这样 在windows的vscode里面的关键报错信息是:vscode wsl Unable to detect if server is already installed: Error: ...
- STM32F407数据手册中文版,STM32F429数据参考手册中文版
发布一个适用STM32F405XX.STM32F407XX.STM32F415XX.STM32F417XX.STM32F427XX.STM32F437XX的中文数据手册,具体内容见下图: 首页 目录 ...
- EFCore Study(3)——“一”对多关系的设定和插入、查找级联操作
一.建立文章.评论类 /// <summary> /// 文章 /// </summary> public class Artitle { public int Id { ge ...
- 跨境电商 | 踏浪出海:我的Allegro跨境电商实战全景
作者:追梦1819 (同名公众号),本职:高级软件工程师:副业:Allegro跨境电商.运营同名公众号(左上二维码),专注分享成长.跨境电商经历与经验. 版权声明:本文为博主原创文章,转载请附上博文链 ...
- Mysql如何给字符串添加索引(前缀索引)
在日常开发中,我们经常给字符串添加索引,那么给字段添加索引有什么技巧吗,我们看看下面的例子,我们给一个邮箱添加索引,应该如何添加呢 看看下面这条sql select * from user where ...