随笔分类 - django-rest-framework
Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口
应用。在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,
不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、
限流、过滤、分页、接口文档等功能支持。REST framework提供了一个API 的Web可视化界面来方便查看测试接口。
特点:
- 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
- 提供了丰富的类视图、Mixin扩展类,简化视图的编写;
- 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
- 多种身份认证和权限认证方式的支持;[jwt]
- 内置了限流系统;
- 直观的 API web 界面;
- 可扩展性,插件丰富
摘要:
目录 (1)Web应用模式及API接口 (2)Restful规范 (3)drf安装和简单使用 (4)源码分析 (5)序列化器-Serializer (6)局部和全局响应配置 (7)视图 (8)路由-Routers (9)认证-Authentication (10)权限-Permissions (11
阅读全文

摘要:相关博客 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存内存或者memc
阅读全文
摘要:#RBAC(Role-Based Access Control:基于角色的访问控制) #django的auth就是内置了一套RBAC的权限系统 #django中 #后台权限控制(公司内部系统,crm客户关系管理,erp,协同平台) user表 group表 permission表 user_grou
阅读全文
摘要:在用户注册信息登陆后,想记录用户的登录状态,或者为用户创建身份认证的凭证,不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制 1、构成 JWT就是一段字符串,由三段信息文本用.链接一起就构成了JWT字符串, aaaa.bbbb.cccc 第一个部分成为头
阅读全文
摘要:rest framework可以自动帮助生成接口文档 接口文档以网页的方式呈现 自动接口文档能生成的是继承自APIView及其子类的视图 1、安装依赖 rest framework生成接口文档需要coreapi库的支持 pip install coreapi 2、设置接口文档访问路径 在总路由中添加
阅读全文
摘要:三种分页方式: PageNumberPagination LimitOffsetPagination CursorPagination #settings.py全局配置 REST_FRAMEWORK = { 'PAGE_SIZE': 2, } PageNumberPagination # urls.
阅读全文
摘要:drf数据的增删改查 模型类 from django.db import models class BaseModel(models.Model): is_delete = models.BooleanField(default=False) # auto_now_add创建的时候,不需要手动插入时
阅读全文
摘要:封装Response对象 #utils.py #自定制响应 from rest_framework.response import Response class CommonResponse(Response): def __init__(self, code=10, msg='成功', data=
阅读全文
摘要:异常处理,统一接口 #全局配置 REST_FRAMEWORK = { 'EXCEPTION_HANDLER': 'app01.app_auth.my_exception_handler', } #统一接口的返回 #app_auth.py # 自定义异常处理的方法 from rest_framewor
阅读全文
摘要:过滤组件 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-filter扩展来增强支持 pip install django-filter 在配置文件中添加过滤后端的设置 INSTALLED_APPS=[ 'django_filter',#需要注册应用 ] #全局配置,也可以局部配
阅读全文
摘要:频率限制 可以对接口访问的频次进行限制,以减轻服务器压力 一般用于付费购买次数,投票等场景使用 1、内置的频率限制 未登录用户访问频次 全局使用:限制未登录用户1分钟访问五次 #settings.py REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ['
阅读全文
摘要:权限Permissions 权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。 在执行视图的dispatch方法前,会先进行视图访问权限的判断 在通过get_object()获取具体对象时,会进行模型对象访问权限的判断 区分不同的用户访问不同 的接口 1、源码分析 #APIView 》di
阅读全文
摘要:认证Authentication 1、认证的写法 #认证的实现 -1.写一个类,继承BaseAuthentication,重写authenticate,认证的逻辑写在里面,返回两个值,一个值最终给了Request对象的user,,如果认证失败就抛异常:AuthenticationFailed -2.
阅读全文
摘要:路由Routers 对于视图集ViewSet,除了可以自己手动指明请求方式与动作action之间,还可以使用Routers来快速实现路由信息 rest framework提供了两个router SimpleRouter DefaultRouter #1.在urls.py中配置 path('books
阅读全文
摘要:视图 #两个视图基类 APIView GenericAPIView(继承APIView),涉及到数据库和序列化类的操作,尽量用GenericAPIView 先写模型类和序列化类,然后配置路由 models.py from django.db import models # Create your m
阅读全文
摘要:局部和全局响应配置 rest framework提供了一个响应类Response,使用该类构造响应对象时,响应的具体数据内容会被转换成(render渲染)成符合前端需求的类型 rest framework提供了Renderer渲染器,用来根据请求头中的Accept(接收数据类型声明)来自动转换响应数
阅读全文
摘要:序列化器-Serializer 作用: 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型 反序列化,完成数据校验功能 #先在models.py中写创建表 from djan
阅读全文
摘要:cbv ModelViewSet继承与View (djanog原生View) path('books/',views.Books.as_view())#在这个地方应该写函数内存地址,views.Books.as_view()执行完,是个函数内存地址,as_view是一个类方法,类直接来调用,会把类自
阅读全文
摘要:drf安装和简单使用 1、安装 #安装 pip install djangorestframework ==2、使用== 1. settings.py中 INSTALLED_APPS = [ 'rest_framework' ] 2. 在models.py中写表模型 class Book(model
阅读全文
摘要:Restful规范 REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。它首次出现在2000年Roy Fielding的博士论文中 RESTFUL是一种定义Web API接口的设计风格,尤其适合前后端分离的应用模式中。 这种
阅读全文