前言 有时候我们发送手机验证码,会发现1分钟只能发送1次,这是做了频率限制,限制的时间次数,都由开发者自己决定 频率认证源码分析 def check_throttles(self, request): """ 检查是否应限制请求.如果请求受到限制,则引发适当的异常. """ throttle_durations = [] # 1.遍历配置的频率认证类,初始化一个个频率认证类对象(会调用频率认证类的__init__()方法) # 2.频率认证类对象…
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Django rest framework(4)----版本 Django rest framework(5)----解析器 Django rest framework(6)----序列化 Django rest framework(7)----分页 一.基础 1.1.安装 两种方式: github pip…
一.序列化类的增.删.改.查 用drf的序列化组件   -定义一个类继承class BookSerializer(serializers.Serializer):   -写字段,如果不指定source,字段名必须跟数据库字段名对应(source指定的值跟字段名不能重复)   -source还可以指定方法   -publish=serializers.SerializerMethodField()   def get_publish(self,obj):    obj.publish    #ob…
前言: Django REST framework,是1个基于Django搭建 REST风格API的框架: 1.什么是API呢? API就是访问即可获取数据的url地址,下面是一个最简单的 Django API,访问http://127.0.0.1:8000/,返回用户列表: from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r…
原文:asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证 在前面的文章中我们曾经涉及到ControllerActionInvoker类GetParameterValue方法中有这么一句代码: ModelBindingContext bindingContext = new ModelBindingContext() {                 FallbackToEmptyPrefix = (parameterDescriptor.Bi…
一.基础 django 2.0官方文档 https://docs.djangoproject.com/en/2.0/ 安装 pip3 install djangorestframework 假如我们想实现用户必须是登陆后才能访问的需求,利用restframework该如何的去实现,具体的源码流程又是怎么样的呢 为了有一个清晰的认识,先直接上代码,有一个清晰的认识,在剖析源码流程 首先先创建一个应用 python manage.py startapp app01 在应用 app01.views.p…
Django-restframework 源码分析之认证 前言 最近学习了 django 的一个 restframework 框架,对于里面的执行流程产生了兴趣,经过昨天一晚上初步搞清楚了执行流程(部分方法还不太清楚),于是想详细的总结一下当来一个请求时,在该框架里面是如何执行的? 启动项目时 昨天在调试django时,发现在 APIView 中打的断点没有断下来,而是打在 View 中的断点断下来了,调试了很多次,最后发现,在 django 项目启动时,会首先加载 urls 中的文件,执行 v…
前言 上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问 权限源码分析 源码入口:APIView.py文件下的initial方法下的check_permissions def check_permissions(self, request): """ 检查是否应允许该请求.如果请求不被允许,则引发适当的异常. """ for permission in self.get_permissions()…
前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了.它的完整的路径是在django.contrib.auth.models.User. User模型源码分析 class User(AbstractUser): """ Django 身份验证系统中的用户由该模型表示 需要用户名和密码.其他字段是可选的. """ class Meta(AbstractUser.Meta): swappable = 'AUT…
request.post源码分析: 可以看到传递json后会帮我们dumps处理一次最后一字节形式传递过去…