随笔分类 -  Django

摘要:前言 我们在开发项目时经常会进行导包有import *格式的,还有from * import *格式的,最后就会显示的很乱,那么有没有什么工具能对导包进行一键排序呢?答案是有的,使用isort工具 isort介绍 isort 是一个 Python 实用库,用于按字母顺序对imports导入进行排序, 阅读全文
posted @ 2021-12-01 15:44 Silent丿丶黑羽 阅读(425) 评论(1) 推荐(1)
摘要:前言 由于之前我们一直使用的django-rest-framework-jwt 这个库,但是作者在17年的时候就已经不再维护了(有部分bug没有解决),所以我们也就不用了,目前我们使用django-rest-framework-simplejwt 介绍 Simple JWT为Django REST 阅读全文
posted @ 2021-11-15 14:45 Silent丿丶黑羽 阅读(773) 评论(0) 推荐(0)
摘要:介绍 drf-spectacular是为Django REST Framework生成合理灵活的OpenAPI 3.0模式。它可以自动帮我们提取接口中的信息,从而形成接口文档,而且内容十分详细,再也不用为写接口文档而心烦了 这个库主要实现了3个目标 从DRF中提取更多的schema信息 提供灵活性, 阅读全文
posted @ 2021-11-02 18:06 Silent丿丶黑羽 阅读(2053) 评论(0) 推荐(1)
摘要:介绍 Django框架的调试工具栏使用django-debug-toolbar库,是一组可配置的面板,显示有关当前请求/响应的各种调试信息,点击时,显示有关面板内容的更多详细信息。 应用 1. 安装 pip install django-debug-toolbar 2. settings配置 先决条 阅读全文
posted @ 2021-11-02 09:37 Silent丿丶黑羽 阅读(662) 评论(1) 推荐(1)
摘要:djoser是什么? 作用:Django认证系统的REST实现。djoser库提供了一组Django Rest Framework视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于自定义用户模型。 djoser并没有重写Django代码(例如PasswordResetForm), 阅读全文
posted @ 2021-11-01 14:21 Silent丿丶黑羽 阅读(530) 评论(0) 推荐(0)
摘要:#介绍 ImageKit是用于处理图像的Django应用程序。如果需要从原图上生成一个长宽为50x50的图像,则需要ImageKit。 ImageKit附带了一系列图像处理器,用于调整大小和裁剪等常见任务。 安装 在安装ImageKit之前,我们需要先安装Pillow,因为ImageKit是基于Pi 阅读全文
posted @ 2021-11-01 13:38 Silent丿丶黑羽 阅读(572) 评论(0) 推荐(0)
摘要:前言 在RESTful规范中,有关版本的问题,用restful规范做开放接口的时候,用户请求API,系统返回数据。但是难免在系统发展的过程中,不可避免的需要添加新的资源,或者修改现有资源。因此,改动升级必不可少,但是,作为平台开发者,应该知道:一旦API开放出去,有人开始用了,平台的任何改动都需要考 阅读全文
posted @ 2021-06-24 06:44 Silent丿丶黑羽 阅读(550) 评论(0) 推荐(0)
摘要:前言 如果需要满足前端各种筛选条件查询,我们使用drf自带的会比较麻烦,比如查询书名中包含“国”字,日期大于“2020-1-1”等等诸如此类的请求,Django-filter这个组件就是要解决这样的问题。 1.安装 Django-filter支持的Python版本和Django版本、DRF版本如下: 阅读全文
posted @ 2021-06-23 06:32 Silent丿丶黑羽 阅读(788) 评论(0) 推荐(0)
摘要:前言 当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面 PageNumberPagination:基础分页器,性能略差 LimitOffsetPagination:偏移分页器 CursorPagination:游标分页器,性能强大 PageNu 阅读全文
posted @ 2021-06-22 11:32 Silent丿丶黑羽 阅读(338) 评论(0) 推荐(0)
摘要:前言 当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。 搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选 排序过滤:比如我们想对价格进行升序排列,就可以使用排序过滤 搜索过滤 在实际的使用过程中十分简单,只需要在视图类中配置一个全局变量filter_b 阅读全文
posted @ 2021-06-21 11:24 Silent丿丶黑羽 阅读(222) 评论(0) 推荐(0)
摘要:前言 我们使用django创建用户可以使用注册接口的方式,也可以使用django自带的后台管理系统,这里就介绍使用后台管理系统创建用户 admin后台管理系统 在使用之前我们可以使用第三方的插件,来美化我们的后台管理系统,这里推荐simpleui,一个基于Django Admin的现代化主题 安装命 阅读全文
posted @ 2021-06-20 21:41 Silent丿丶黑羽 阅读(358) 评论(0) 推荐(0)
摘要:前言 带着问题学习是最有目的性的,我们先提出以下几个问题,看看通过这篇博客的讲解,能解决问题吗? 什么是JWT? 为什么要用JWT?它有什么优势? JWT的认证流程是怎样的? JWT的工作原理? 我们带着4个问题进入学习 1.什么是JWT? JWT全称Json Web Token,JWT 是一种开发 阅读全文
posted @ 2021-06-20 10:08 Silent丿丶黑羽 阅读(539) 评论(0) 推荐(2)
摘要:前言 有时候我们发送手机验证码,会发现1分钟只能发送1次,这是做了频率限制,限制的时间次数,都由开发者自己决定 频率认证源码分析 def check_throttles(self, request): """ 检查是否应限制请求。如果请求受到限制,则引发适当的异常。 """ throttle_dur 阅读全文
posted @ 2021-06-16 06:42 Silent丿丶黑羽 阅读(228) 评论(0) 推荐(0)
摘要:前言 上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问 权限源码分析 源码入口:APIView.py文件下的initial方法下的check_permissions def check_permissions(self, request): """ 阅读全文
posted @ 2021-06-14 10:46 Silent丿丶黑羽 阅读(305) 评论(0) 推荐(0)
摘要:前言 如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的 源码分析 源码的入口在APIView.py文件下的dispatch方法下的self.initial方法中的self.perform_authenticat 阅读全文
posted @ 2021-06-13 14:22 Silent丿丶黑羽 阅读(271) 评论(0) 推荐(0)
摘要:认证组件源码入口 APIView下的dispatch下的self.initial(request, *args, **kwargs),源码如下: def initial(self, request, *args, **kwargs): """ 在调用方法处理程序之前运行任何需要发生的事情 """ # 阅读全文
posted @ 2021-06-11 17:16 Silent丿丶黑羽 阅读(95) 评论(0) 推荐(0)
摘要:前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了。它的完整的路径是在django.contrib.auth.models.User。 User模型源码分析 class User(AbstractUser): """ Django 身份验证系统中的用户由该 阅读全文
posted @ 2021-06-11 16:23 Silent丿丶黑羽 阅读(483) 评论(0) 推荐(0)
摘要:验证和授权概述 Django有一个内置的授权系统。他用来处理用户、分组、权限以及基于cookie的会话系统。Django的授权系统包括验证和授权两个部分。验证是验证这个用户是否是他声称的人(比如用户名和密码验证,角色验证),授权是给与他相应的权限。Django内置的权限系统包括以下方面: 用户。 权 阅读全文
posted @ 2021-06-11 06:37 Silent丿丶黑羽 阅读(160) 评论(0) 推荐(0)
摘要:前言 ViewSet 只是一种基于类的视图,它不提供任何方法处理程序(如 .get()或.post()),而是提供诸如.list()和 .create() 之类的操作。 ViewSet 的方法处理程序仅使用 .as_view() 方法绑定到完成视图的相应操作。 通常不是在urlconf中的视图集中显 阅读全文
posted @ 2021-06-10 16:57 Silent丿丶黑羽 阅读(989) 评论(0) 推荐(0)
摘要:前言 上篇我们通过mixin可以非常方便的实现一些CURD操作。实际上针对这些mixin,DRF还进一步的进行了封装,放到generics下。有以下generic类视图: generics.ListAPIView:实现获取列表的。 generics.CreateAPIView:实现创建数据的。 ge 阅读全文
posted @ 2021-06-10 11:32 Silent丿丶黑羽 阅读(157) 评论(0) 推荐(0)