随笔分类 -  Django

非常强大的PythonWeb框架
摘要:信号机制 Django提供信号机制,类似于在某些特定的流程中设置一系列的HookFunction。 具体概念一言以蔽之,用户发生某些动作后,会发送一个特定动作的信号,我们只需要为他设置回调函数即可。 举个例子,现在项目中用到了MySQL和Redis,当我们更新某张数据表记录时,希望Redis中也同时 阅读全文
posted @ 2021-01-14 22:20 云崖先生 阅读(348) 评论(0) 推荐(0)
摘要:celery 功能描述 它是一个简单、灵活、可靠的用于处理大量消息的分布式系统。 功能主要有三个:执行异步任务,执行延迟任务,执行定时任务。 举个例子,你现在有两个项目、一个项目用于爬取数据,一个项目用于分析数据,如何在数据爬取后将任务交给另一个项目进行分析呢?这种场景下就可以使用celery进行处 阅读全文
posted @ 2020-12-03 23:07 云崖先生 阅读(821) 评论(0) 推荐(0)
摘要:前言 在前后端分离项目中,如何解决跨域请求是一个必须要面对的问题。因为前端和后端的数据交互会被浏览器的同源策略所挟持,在很早之前我在博客园发了一篇文章,大概就说了一下如何简单粗暴的解决跨域。 其实那种解决办法是不适用于内部项目的,而是对一些公共的开发接口做访问进行数据获取,下面是文章链接: jQue 阅读全文
posted @ 2020-11-11 15:35 云崖先生 阅读(275) 评论(0) 推荐(0)
摘要:缓存作用 当一个网站的并发量特别高的时候,频繁的对数据库进行增删查改操作势必会让访问速度变慢,此时你可以选择使用缓存来减小服务器的压力,但是缓存不要滥用,因为它可能会导致脏数据的出现。 缓存说白了就是将你的数据存放到另一个地方,下次再去拿这些数据时将不再进行数据库查询,而是直接从缓存中取出数据并返回 阅读全文
posted @ 2020-11-05 20:36 云崖先生 阅读(506) 评论(2) 推荐(0)
摘要:RBAC是什么 RBAC是基于角色的访问控制(Role-Based Access Control )在 RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。 这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管 阅读全文
posted @ 2020-11-05 18:11 云崖先生 阅读(673) 评论(0) 推荐(0)
摘要:JWT模块 在djangorestframework中,有一款扩展模块可用于做JWT认证,使用如下命令进行安装: pip install djangorestframework-jwt 现在,就让我们开始使用它吧。 JWT配置 该模块的所有配置都会从settings.py中进行读取,与drf一样,它 阅读全文
posted @ 2020-11-05 17:45 云崖先生 阅读(1572) 评论(2) 推荐(1)
摘要:JWT介绍 JWT的全称为Json web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。 JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息, 阅读全文
posted @ 2020-11-04 22:38 云崖先生 阅读(819) 评论(0) 推荐(3)
摘要:coreapi 在drf中,能够支持我们自动生成API文档的模块有很多,这里使用的是coreapi。 pip install coreapi 切记一点,coreapi生成的接口文档的接口只能是继承自APIView及其子类的视图接口。 基本使用 在线文档 由于生成的文档是在线的,所以我们需要在主路由下 阅读全文
posted @ 2020-11-04 15:20 云崖先生 阅读(167) 评论(0) 推荐(0)
摘要:组件导入 在drf中,拥有三种分页器,以下是三种分页器的导入: from rest_framework.pagination import PageNumberPagination from rest_framework.pagination import LimitOffsetPagination 阅读全文
posted @ 2020-11-03 16:04 云崖先生 阅读(111) 评论(0) 推荐(0)
摘要:前言 ModelSerializer中还具有一些高级用法,如批量更新、批量删除、批量创建等。 但是批量过来的数据格式都需要与前端做好协商,什么样的数据格式是单条操作,什么样的数据格式是批量操作。 如下,对于单条操作而言,只需要传入编号即可,而批量操作则需要在请求体中传入[]以及被操作的主键编号。 模 阅读全文
posted @ 2020-11-03 14:28 云崖先生 阅读(1107) 评论(0) 推荐(0)
摘要:异常捕获 使用drf进行前后端分离时,有的时候当后端出现异常,返回的数据格式并不是JSON,你可能会发现下面这样的情况: 它会返回给你一个HTML文档,这显然对于前端开发工程师来说是非常不友好的。 所以我们通常会将这种情况给他处理掉,学习如何处理之前要看drf是如何对异常进行处理的。 源码阅读 首先 阅读全文
posted @ 2020-11-01 22:25 云崖先生 阅读(420) 评论(0) 推荐(0)
摘要:django-filter drf中如果想在url中直接写过滤与排序,则需要安装第三方模块。 pip install django-filter 其次你需要将该模块注册进行django配置文件中。 INSTALLED_APPS = [ 'rest_framework', 'django_filter 阅读全文
posted @ 2020-11-01 21:22 云崖先生 阅读(376) 评论(0) 推荐(0)
摘要:频率限制 一个网站的访问频率限制是非常重要的,访问频率限制做的好可以预防爬虫等恶意行为。 使用drf的频率限制对网站接口访问做出限制十分的便捷好用,你只需要直接进行配置即可。 内置限制 局部使用 首先我们在视图中进行配置: from rest_framework.throttling import 阅读全文
posted @ 2020-11-01 20:37 云崖先生 阅读(467) 评论(0) 推荐(0)
摘要:权限校验 权限校验和认证校验必须同时使用,并且权限校验是排在认证校验之后的,这在源码中可以查找到其执行顺序。 权限校验也很重要,认证校验可以确保一个用户登录之后才能对接口做操作,而权限校验可以依据这个登录用户的类型来限定能对接口做那些操作。 准备工作 模型表 下面是模型表,对于不同等级的用户,访问同 阅读全文
posted @ 2020-11-01 16:54 云崖先生 阅读(450) 评论(0) 推荐(0)
摘要:认证校验 认证校验是十分重要的,如用户如果不登陆就不能访问某些接口。 drf中认证的写法流程如下: 1.写一个类,继承BaseAuthentication,并且覆写其authenticate方法 2.当认证通过后应该返回两个值,并且第一个值会传递给request.user这个属性中,第二个值将会传递 阅读全文
posted @ 2020-10-31 22:58 云崖先生 阅读(320) 评论(0) 推荐(0)
摘要:前言 在drf中,我们写接口可以通过继承modelViewSet从而达到非常快速的功能实现,这十分的方便,但是modelViewSet由于需要根据不同的参数来对应不同的处理,所以我们写的url最少都需要两条,如下所示: path('api/users/', views.UserAPI.as_view 阅读全文
posted @ 2020-10-31 16:42 云崖先生 阅读(363) 评论(0) 推荐(0)
摘要:前言 drf视图的源码非常的绕,但是实现的功能却非常的神奇。 它能够帮你快速的解决ORM增删改查的重复代码,非常的方便好用。 下面是它源码中的一句话: class ViewSetMixin: """ This is the magic. """ 好了,屁话不多说,直接看看drf视图中的功能吧。 准备 阅读全文
posted @ 2020-10-28 19:59 云崖先生 阅读(635) 评论(0) 推荐(2)
摘要:响应 Rsponse 当一个请求完成后,我们一般都会返回drf中的Rsponse对象,那么该对象其中最重要的作用就是序列化。 将需要返回给页面的数据进行JSON处理,除此之外还会对返回的页面等进行包装,它的内部其实也挺有趣儿的。 下面是Rsponse的签名: def __init__(self, d 阅读全文
posted @ 2020-10-25 17:42 云崖先生 阅读(882) 评论(0) 推荐(0)
摘要:drf序列化 在前后端不分离的项目中,可以使用Django自带的forms组件进行数据验证,也可以使用Django自带的序列化组件对模型表数据进行序列化。 那么在前后端分离的项目中,drf也提供了数据验证与序列化,相比于Django原生的序列化它更加强大与易用。 准备工作 注册drf 首先第一步,我 阅读全文
posted @ 2020-10-24 23:07 云崖先生 阅读(1211) 评论(1) 推荐(1)
摘要:APIView 在drf中,所有的视图都是以CBV的方式进行,这意味着我们必须使class继承于View类,但是原生Django的View功能有限。所以drf中有一个APIView,它对View做了更加人性化的处理。 执行流程 APIView的使用方式和普通的View使用方式相同,但是源码上的执行流 阅读全文
posted @ 2020-10-23 20:29 云崖先生 阅读(163) 评论(0) 推荐(2)