handler

jwt token认证

北慕城南 提交于 2020-03-11 07:02:36
目录 1、drf-jwt手动签发与校验 2、drf小组件:过滤、筛选、排序、分页 => 针对与群查接口 jwt_token源码分析(入口) 签发token源码分析 校验token源码分析 手动签发token 签发源码小总结: 手动校验token 校验源码小总结 1、drf-jwt手动签发与校验 2、drf小组件:过滤、筛选、排序、分页 => 针对与群查接口 jwt_token源码分析(入口) rest_framework_jwt --> views.py --> ObtainJSONWebToken(JSONWebTokenAPIView) class ObtainJSONWebToken(JSONWebTokenAPIView): serializer_class = JSONWebTokenSerializer 然后到父类中JSONWebTokenAPIView的post方法 def post(self, request, *args, **kwargs): #从get_serializer获取serializer serializer = self.get_serializer(data=request.data) ........ 点击get_serializer def get_serializer(self, *args, **kwargs):

SpringMVC的执行流程

最后都变了- 提交于 2020-03-09 20:01:37
SpringMVC的执行流程 如上图,Spring MVC 程序的完整执行流程如下: 用户通过浏览器发送请求,请求会被 Spring MVC 的前端控制器 DispatcherServler 接受。 DispatcherServlet 拦截到请求后,会调用 HandlerMapping 处理器映射器。 处理器映射器根据请求 URL 找到具体的处理器,生成处理器对象(如果有,还会生成拦截器对象)并返回给 DispatcherServlet。 DispatcherServlet 根据返回信息(Handler)选择合适的处理器适配器(HandlerAdapter)。 HandlerAdapter 会调用并指定 Handler(处理器)。此处和上述所说的处理器 Handler,就是我们所编写的 Controller 类。 Controller 执行完成后,会返回一个 ModelAndView 对象,该对象中会包含视图名和模型对象。 HandlerAdapter 将 ModelAndView 返回给 DispatcherServlet。 DispatcherServlet 会根据返回信息(ModelAndView)选择一个合适的视图解析器:ViewResolver。 视图解析器 ViewResolver 解析视图后,会向 DispatcherServlet 返回具体的 View 对象。

Erlang OTP行为模式behaviour——gen_event

匆匆过客 提交于 2020-03-09 18:26:49
说明 最近笔者在学习otp行为模式,在查阅相关资料时发现网上有关erlang的资料不是很多,也不够详细。在参考官方文档以及其他作者的文章后,决定写这篇博客。算是自己对知识的复习,也为诸君提供一些参考。 1.gen_event 简介 Gen_event实现了通用事件处理,通过其提供的标准接口方法以及回调函数,在OTP里面的事件处理模块是由一块通用的事件管理器和任意数量的事件处理器,并且这些事件处理器可以动态的添加和删除。一个事件可以用来记录error,alarm,info, warning等信息。一个事件管理器可以安装一个或多个事件处理器,当一个事件管理器接受到一个事件的通知时,这个事件将会被所有的已安装的事件处理器依次处理。 事件管理器是作为一个进程实现的,每个事件处理器都是一个回调模块。且事件管理器实质上是一个{Module,State} 组成的列表,Module是事件处理器,State为该事件处理器内部状态。 2.事件处理器 不多废话,直接上代码,以下为一个事件处理器标准模板,具体函数将在后面做出详细解释。事件处理器可以有多个。 -module(info_logger). -behaviour(gen_event). %% gen_event callbacks -export([init/1, handle_event/2, handle_call/2, handle

python日志模块使用

天涯浪子 提交于 2020-03-09 15:22:35
实例选自: openpifpaf/log.py 参考: 博客1 博客2 import logging LOG = logging . getLogger ( __name__ ) # 获取当前模块名当作此Logger的名字 def configure ( args ) : # pylint: disable=import-outside-toplevel from pythonjsonlogger import jsonlogger from . import __version__ as VERSION # 此处使用logging的方式是使用Logging日志系统的四大组件 file_handler = logging . FileHandler ( args . output + '.log' , mode = 'w' ) # 创建一个输出到log文件的Handler. file_handler . setFormatter ( # 设置日志输出格式 jsonlogger . JsonFormatter ( '(message) (levelname) (name) (asctime)' ) ) stdout_handler = logging . StreamHandler ( sys . stdout ) # 创建一个输出到控制台的Handler # basicConfig

Android中消息机制分析

筅森魡賤 提交于 2020-03-09 09:55:04
本文中的源码基于Android 29; 一、概述 对于Android开发者而言,我们处理异步消息用的最多的也是轻车熟路的一种方式,就是使用Handler进行消息的分发和处理。但是我们在一个页面(Activity 或者 Fragment)中可以直接使用Handler进行消息的分发和处理。实例如下: private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { //处理消息 return false; } }); 我们一般在handleMessage()方法里进行消息的处理,同时在需要发送消息的地方使用mHandler.sendEmptyMessage(0)发送消息即可。callback回调是怎么收到消息的呢?同时Handler又是怎么发送消息的呢?我们带着问题看一下源码。 Android开发者们都知道:当APP启动时,会默认产生一个主线程(也就是UI线程),这个线程会关联一个消息队列,然后所有的操作都会被封装成消息后在主线程中处理。那么到底Android中消息机制是什么样子的呢? 对于Android程序而言,运行程序也是需要通过Java中的程序入口开始执行

spring 之7种重要设计模式

ぃ、小莉子 提交于 2020-03-09 08:52:44
Spring中涉及的设计模式总结 1.简单工厂(非23种设计模式中的一种) 实现方式: BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。 实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。 然后通过BeanDefinitionRegistry将这些bean注册到beanFactory中,保存在它的一个ConcurrentHashMap中。 将BeanDefinition注册到了beanFactory之后,在这里Spring为我们提供了一个扩展的切口,允许我们通过实现接口BeanFactoryPostProcessor 在此处来插入我们定义的代码。典型的例子就是:PropertyPlaceholderConfigurer,我们一般在配置数据库的dataSource时使用到的占位符的值,就是它注入进去的。 容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口 ,比如

深入理解DOM事件类型系列第三篇——变动事件

冷暖自知 提交于 2020-03-09 07:47:59
前面的话   变动(mutation)事件能在DOM中的某一部分发生变化时给出提示,这类事件非常有用,但都只能使用DOM2级事件处理程序,且由于浏览器兼容性不好,所以用的不广泛 删除节点   删除节点时,涉及到DOMNodeRemoved、DOMNodeRemovedFromDocument和DOMSubtreeModified这三个事件,下面将详细介绍 DOMNodeRemoved   在使用removeChild()或replacechild()从DOM中删除节点时,会触发DOMNodeRemoved事件。而event.relatedNode属性中包含着对目标节点父节点的引用。在这个事件触发时,节点尚未从其父节点删除,因此其parentNode属性仍然指向父节点。该事件会冒泡   [注意]IE8-浏览器不支持 <div id="box" style="height: 30px;width: 100px;"> <div id="inBox">1</div> </div> <button id="btn">删除子节点</button> <script> inBox.addEventListener('DOMNodeRemoved',function(e){ e = e || event; e.relatedNode.style.background = 'lightblue'; }

ES6新特性——Proxy代理

只愿长相守 提交于 2020-03-08 22:11:34
Proxy如其名, 它的作用是在对象和和对象的属性值之间设置一个代理,获取该对象的值或者设置该对象的值, 以及实例化等等多种操作, 都会被拦截住, 经过这一层我们可以统一处理,我们可以认为它就是“代理器” 。 let obj = new Proxy(target, handler); Proxy 是一个构造函数, 使用 new Proxy 创建代理器, 它的第一个参数 target 是要包装的目标对象 Proxy 。它可以是任何类型的对象,包括本机数组,函数或甚至另一个代理,第二个参数 handler 也为一个对象, 返回被包裹后的代理器。举个例子: //被代理的对象 let item = { userName:'don', age:18 } //代理对象 let proxyItem = new Proxy(item, { get : function( target , prop ) { console.log("我要获取值了"); return target[prop]; }, set : function( target, prop, value) { console.log("我要设置值了"); target[prop] = value; return true } }); obj.userName = 'alice'; // 我要设置值了 console.log(obj

Android中Handler与Message的简易使用

99封情书 提交于 2020-03-08 21:53:19
链接: https://www.cnblogs.com/KeepDoingSomething/p/9887967.html 链接2: https://blog.csdn.net/weixin_43778720/article/details/88072118 1,Message的作用: 用于存放传递的数据; 是主线程和子线程传递数据的载体 Message是封装了需要传递的数据交由Handler 处理的对象。 来源: https://www.cnblogs.com/wskb/p/12444912.html

node.js 封装模块

人盡茶涼 提交于 2020-03-08 18:31:45
1. form.js // 模块1 服务模块,负责启动服务 // 模块2 拓展模块,负责拓展req和res对象,为req和res增加以下更方便好用的API // 模块3 路由模块,负责路由判断 // 模块4 业务模块,负责处理具体路由的业务的代码 // 模块5 数据操作模块,负责进行数据库操作 // 模块6 配置模块,负责报错各种项目中用到的配置信息 var http = require('http'); var context = require('./11_context.js'); var router = require('./11_router.js'); var config = require('./11_config.js'); console.log('form'); http.createServer(function(req, res) { // 外部代码只在开始时执行依次,内部代码每请求一次就执行一次 console.log('server'); context(req, res); // 调用context.js的返回值,并将req和res传递过去 router(req, res); }).listen(config.port, function() { console.log('http://localhost:' + config.port); });