首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django REST framework 来实现一次性验证码(OTP)

今天讲一下如何用 Django REST framework[1](DRF) 来实现 OTP,阅读本文需要一定 DRF 基础知识。...REST framework 框架 Serializer 可以对 Models 里每一个字段进行验证,我们直接在里面做填空题即可: # serializers.py class VerifyCodeSerializer...,借助于 Django REST framework 框架 GenericViewSet CreateModelMixin 即可实现 view 类,代码都有详细注释,你很容易就看明白: from...这其实需要了解 DRF ModelSerializer 类 ViewSet 类之前关系,在调用关系上,ViewSet 类调用 ModelSerializer 来实现字段验证和数据保存及序列化,...参考资料 [1] Django REST framework: https://www.django-rest-framework.org

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

DjangoRESTframework(补充)

,将模型对象传入 2) data:用于反序列化,将被反序列化数据传入 3) 除了instancedata参数外,在构造Serializer对象时,还可通过context参数额外添加数据 serializer...验证失败,可以通过序列化器对象 errors 属性获取错误信息,返回一个字典, 包含字段字段错误,若是非字段错误,可以通过修改 REST framework 配置中 NON_FIElD_ERRORS_KEY...', code='invalid')]} REST framework 提供 validators UniqueValidator 单字段唯一 from rest_framework.validators...两个基类 1) APIView rest_framework.views.APIView APIView是REST framework提供所有视图基类,继承自DjangoView父类...APIView与View不同之处在于: 传入到视图方法中REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework

2.2K30

python教程

Django提供表单(Form)类模型表单(ModelForm)类相同方式,REST 框架包括了实例化(Serializer)类模型实例化(ModelSerializer)类。...用我们序列化来写常规Django视图 让我们看看,使用我们新序列化类,我们怎么写一些API视图。此刻,我们不会使用REST框架其他特性,仅仅像写常规Django视图一样。...这个字段很有趣。source参数控制哪个属性被用于构成一个字段,并且能够指出序列实例任何属性。它也能像上面一样使用点标记(.),这种情况下他会横贯给定属性,就是我们使用Django模板语言一样。...我们添加字段是隐式ReadOnly类,与其他类相反,如CharField,BooleanField,隐式ReadOnlyField总是只读用于序列化表示,但在数据非序列化时不能用于更新实例。...唯一限制就是include链接必须使用'rest_framework'名字空间。现在如果你刷新浏览器页面,你会看到右上角'Login'链接。

5K10

django 1.8 官方文档翻译:14-6 系统检查框架

系统检查框架 New in Django 1.7. 系统检查框架是为了验证Django项目的一系列静态检查。它可以检测到普遍问题,并且提供如何修复提示。...如果是None,检查会运行在项目中所有安装应用上。**kwargs参数用于进一步扩展。 消息 这个函数必须返回消息列表。如果检查结果中没有发现问题,检查函数必须返回一个空列表。...CheckMessage实例封装了一个可报告错误或者警告。它同时也提供了可应用到消息上下文或者提示,以及一个用于过滤唯一标识符。 它概念非常类似于消息框架或者 日志框架消息。...字段、模型管理器检查 在一些情况下,你并不需要注册检查函数 – 你可以直接使用现有的注册。 字段、方法模型管理器都实现了check() 方法,它已经使用检查框架注册。...考虑一个例子,其中你要实现一个叫做RangedIntegerField自定义字段。这个字段向IntegerField构造器中添加min max 参数。

43630

Django rest framework源码分析(1)----认证

一、基础 1.1.安装 两种方式: github pip直接安装 pip install django-rest-framework 1.2.需要先了解一些知识 理解下面两个知识点非常重要,django-rest-framework...settingsapp中添加 INSTALLED_APPS = [ 'rest_framework', ] 2.2.url from django.contrib import admin from...如果用户名密码正确的话  会生成token值,下次该用户再登录时,token值就会更新  数据库中可以看到token值 ? 当用户名或密码错误时,抛出异常 ?...这样就达到了认证效果,django-rest-framework认证是怎么实现呢,下面基于这个例子来剖析drf源码。 四、drf认证源码分析 源码流程图 ?...framework内部会将这两个字段赋值给request,以供后续操作使用 return (token_obj.user,token_obj)  认证流程就是上面写,弄懂了原理,再写代码就更容易理解为什么了

2.1K122

Django REST Framework-信号

一、概述Django REST Framework(DRF)中信号(Signals)是一种非常有用机制,可以让我们在某些重要事件发生时执行一些自定义代码。...二、什么是信号信号是Django一个概念,用于处理某些重要事件发生时执行自定义代码。DRF扩展了Django信号系统,添加了一些新信号,使我们可以更好地处理API相关事件。...DRF信号是基于Python标准库中signal模块实现。DRF中信号通常用于以下情况:在对象创建、保存、删除等事件发生时执行某些操作。...每个信号都有一个唯一名称,通常使用全局唯一标识符(UUID)来表示。当某个事件发生时,会向所有注册了该信号处理器发送信号,以便执行相应操作。...我们可以在do_something函数中执行任何自定义代码,如发送电子邮件、调用外部API等。

7.2K101

django-rest-framework框架学习

django中很著名一个框架django-rest-framework,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要格式帮了我们省了很多事 在这里就记录一下个人学习过程 django-rest-framework...,都有详细介绍 这里我们只简单显示所有的字段 实现视图api类 官方文档: http://www.django-rest-framework.org/api-guide/generic-views/...应用于执行单个模型实例对象查找模型字段。...请注意,使用超链接API时,您需要确保双方API意见串行类设置查找字段,如果你需要使用一个自定义值 在get_queryset()中实现是按照name查询,因为很多时候客户端并不知道自己id.../api-guide/serializers/ 在这里我们使用django自带auth模块 只需要修改serializer.pyview.pyurls.py三个文件即可 serializers.py

1.2K10

七、用户登录与手机注册

urlpatterns = [ # jwt认证接口 path('login/', obtain_jwt_token ) ] 现在就可以登录了  jwt接口它默认采用是用户名密码登录验证...200-299 用于表示请求成功。 300-399 用于已经移动文件并且常被包含在定位头信息中指定新地址信息。 400-499 用于指出客户端错误。 500-599 用于支持服务器错误。...validator验证 完成注册接口 用户注册需要填写手机号,验证码密码,相当于create model操作,所以继承CreateModelMixin (1)修改UserProfile中mobile...,会在django启动时被运行 现在添加用户时候,密码就会自动加密存储了 7.8.vue注册功能联调 生成token两个重要步骤,一是payload,二是encode users/views.py...,会发送验证码到手机上,然后输入验证码密码,登录成功

3.5K10

第一季 | ModelBackend 自定义用户验证,实现用户名、手机号、邮箱登录

Django REST框架构建Web API。...Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计Form(表单)使用。 ? ?...Django 身份验证,ModelBackend 是 Django 使用默认身份验证后端,由用户标识符密码组成凭据进行验证。...在 Django 默认用户模型,用户标识符是用户名,而自定义用户模型,由USERNAME_FIELD 指定字段。 ? 再来看下第一季都有哪些可以回顾用得上小技能 ?...默认情况下,AUTHENTICATION_BACKENDS 设置为 django.contrib.auth.backends.ModelBackend,这是Django检查用户数据基本认证方案。

1.4K30

DjangoRestFramework,序列化组件、视图组件

2.write_only write_only=True表示该字段为只写字段read_only相反,即对应字段用于更新或创建新Model时,而在序列化时不使用,即不会输出给用户。...6.validators 一个应用于传入字段验证函数列表,如果验证失败,会引发验证错误,否则直接是返回,用于验证字段,如: username = serializers.CharField...: 多字段联合唯一,这个时候就不能单独作用于某个字段,我们在Meta中设置。...# extra_kwargs = { # # 'publish': {'write_only': True}, #让publishauthors字段数据只往数据库里面写...等基础校验之外,还会会根据咱们写这个序列化组件中设置字段中有read_only=True属性字段排除掉,这也是为什么我们在面写多对多一对多字段时,如果字段名称model表中多对多或者一对多字段名称相同

2.6K20

Django Rest Framework(版本、解析器、序列化、数据验证)

基于django路由系统namespace 如:example.com/v1/users/ REST_FRAMEWORK = { 'DEFAULT_VERSION': 'v1', # 默认版本...实现,当前版本不一样时候可以用这种方式 from django.urls import reverse url = reverse(viewname='users-list',kwargs...表示服务器可以解析数据格式种类 django发送请求 #如果是这样格式发送数据,在POST里面有值 Content-Type: application/url-encoding........ application/json 匹配:JSONParser处理数据 12 如果客户端Content-Type application/x-www-form-urlencoded...__getattribute__(attr) 三、序列化 序列化用于对用户请求数据进行验证和数据进行序列化(为了解决queryset序列化问题)。 那什么是序列化呢?

2.1K20

DRF系列总结二:脚手架搭建

一、安装DRF   首先,我们创建一个Django基础工程demo,并创建一个测试app,得到了Django框架初始化代码,代码目录结构如下: # django-admin startproject...可以根据环境拆分配置文件,比如dev.py/stag.py/prod.py(本文就当做重点来展开了),urls.py用于配置路由,app则是一个普通Django应用,方便快速开发。   ...Django默认session后端进行身份验证机制,适用于与网站在相同Session环境中运行AJAX客户端;身份验证成功后,会得到以下凭据: - `request.user` 是一个 Django...,增加了pagetotal_page字段,代表当前页总页数,并修改了返回数据字段为items,这样可以统一接口分页格式,满足前端第三方系统对接口后台分页绝大部分需求场景。...) 并定义了接口返回时间字段格式: REST_FRAMEWORK = {

3.6K60

Python进阶42-drf框架(四)

import Response """ Response({ 'status':0, 'msg':'ok', 'results':[], 'token':'', # 有 这样额外...django.contrib.messages', 'django.contrib.staticfiles', 'api.apps.ApiConfig', 'rest_framework...- 限制条件(IP、id、唯一键)、频率周期时间(s、m、h)、频率次数(3/s) # 没有达到限次:正常访问接口 # 达到限次:限制时间内不能访问,限制时间达到后,可以重新访问...:基于auth认证规则 Django框架采用是RBAC认证规则,RBAC认证规则通常分为三表规则、五表规则,Django采用是六表规则 三表规则: 1.用户表 2.角色表 3.权限表 五表规则...代表有权限,返回False """ 频率组件 ---- 频率类源码 入口 # 1)APIViewdispath方法中 self.initial(request, *args, **kwargs)

1.6K20

Python进阶43-drf框架(五)

""" ---- 格式 """ 1) jwt token采用三段式:头部.载荷.签名 2)每一部分都是一个json字典加密形参字符串 3)头部载荷采用是base64可逆加密(前台后台都可以解密...exception) """ Response({ 'status': 0, 'msg': 'ok', 'results': [], 'token': '' # 有这样额外...search=1 ,指定字段中,如果都包含1,都会被查出来,如果search_fields = ['name','price']有两个字段时候,那么价格里带1都会出来。...先在api目录下filter.py文件中中自定义一个类 ## django-filter插件过滤器类 from django_filters.rest_framework import FilterSet...重点使用方法 ---- 自定义过滤字段 api目录下filter.py文件中 ## django-filter插件过滤器类 from django_filters.rest_framework import

3.1K20

第 9 篇:实现分类、标签、归档日期接口

action 装饰器通常用于在视图集中添加额外接口实现。例如这里我们已有了 PostViewSet 视图集,标准 list 实现了获取文章资源列表逻辑。...而这个接口中只需要序列化一个时间字段(类型为 Python 标准库中 datetime.date),所以没必要单独定义一个序列化器了,直接拿 django-rest-framework 提供用于序列化时间类型...注意到红框圈出部分,django-rest-framework API 交互后台会识别到额外定义 action 并将它们展示出来,点击就可以进入到相应 API 页面。...这在 RESTful API 设计中肯定是会遇到,因此第三方库 django-filter 帮我们实现了上述所说查询过滤功能,而且 django-rest-framework 有很好集成,我们可以在...首先在 blog 应用下创建一个 filters.py 文件,用于存放自定义 filter 代码,PostFilter 代码如下: from django_filters import rest_framework

2.6K30

Django框架完全指南:从入门到高级应用

Django是一个高效、功能强大Python Web框架,它被广泛用于构建各种规模Web应用程序。无论是初学者还是有经验开发人员,都可以从入门到掌握Django高级技巧。...= 'myapp/my_template.html'RESTful APIDjango Rest Framework是一个流行Django扩展,用于构建RESTful API。...Django提供了一系列内置安全功能,包括防止常见Web攻击(如跨站脚本攻击跨站请求伪造)、安全密码存储、HTTPS安全连接等。...Django提供了一个强大测试框架,可以帮助我们编写运行各种类型测试,包括单元测试、功能测试集成测试。...总结本文为Django框架全面指南,从入门到高级,涵盖了各种重要主题技术。

1.3K20
领券