深入探讨JWT流程原理及对drf-jwt的流程分析和源码修改 背景之前做Django项目的时候,一直都用的自带的session认证模式,Django的session模式的后端可以选择redis,也可以选择数据库进行存储。用redis如果需要经常清理内存数据库,而用db存储,则需要频繁写操作,效率也比较低,在用户多的时候,存储大量的session记录带来额外的开销。 一 什么是JWT?JWT俗称 Json Web Token,是一种用于通信双方之间传递安全信 2020-08-17 JWT Django DRF 源码分析 Python Django 源码分析 DRF JWT
Supervisor配置虚拟环境中的celery 前几个月部署过使用虚拟环境的项目,今天把笔记补上! 使用supervisor部署普通项目中的celery和虚拟环境中的celery在command的写法上有些许不同,其他地方都差不多,话不多说,直接上配置。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 2020-08-15 Linux Celery Supervisor Celery Linux Supervisor
汇总Python实现单例模式的四大方式 之前Django开发使用过集中单例模式,今天来整理下这些实现单例模式的方式。 法一:使用__new__魔法方法12345class SingleMode1: def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super 2020-08-10 Python 设计模式 Python 设计模式
Manjaro中对可执行文件添加Icon manjaro中对可执行文件添加Icon用了2天manjaro,感觉它自定义性真得太强大了,以及各种包管理工具pacman,yay,yaourt等 我安装了Pycharm后,需要放到桌面直接执行,而我下载的是zip,采用shell脚本在命令行下进行执行。所以没有图标。 在这里,我总结两种启动pycharm的方法: 1.从命令行启动 进入pycharm的bin目录下,执行shell脚本 source 2020-08-05 Linux Manjaro Linux Manjaro
深入探究GIL的利与弊 深入分析Python全局解释器锁GIL的利与弊 一、GIL的诞生背景在谈GIL之前,先补一波线程的知识,正好最近再复习操作系统: {width=100%} 在那个单核盛行的时代,自多线程问世以来,线程成为了处理机调度最基本的单位。很多语言都开始着手处理线程并发的问题。其中python之父Guido在1992年8月4号引入了GIL的概念。那么那时候为什么要引入GIL全局解释器锁呢? 比方你申请了计 2020-08-05 Python 解释器锁 Python
Manjaro上初体验之配置好输入法(亲测有效) 一 安装基本的依赖包12345sudo pacman -S fcitxsudo pacman -S fcitx-configtool # 安装图形化工具sudo pacman -S fcitx-qt4 fcitx-qt5 # 安装搜狗需要安装qt4sudo pacman -S fcitx-imsudo pacman -S fcitx-sogoupinyin # 安装搜狗拼音 说明: 一 2020-08-02 Manjaro Linux Linux Manjaro
结合源码分析下defaultdict(type)的执行流程 背景Python中为了获取或操作字典中某个某个不存在的键的时候,引入了两种方式。 一种是dict.setdefault(),另外一种是defaultdict(type),今天来重点学习记录下defaultdict()的底层原理。 分析Python源码defaultdict:通过构造defaultdict字典,能够有效的处理找不到的键,具有核心方法missing(),调用default_facto 2020-08-01 Python 源码分析 Python 源码分析
对Nginx中的缓存设置的深入理解 一、背景网站已经运行有一段时间了,起初采用了nginx的反向代理,在location中设置了expires 30d,当时没有去仔细想如何合适的设计缓存。后来,我美化了网站的一些界面,修改了一些静态文件,更新到云服务器上,再次访问的时候发现,我所修改的静态文件资源并没有发生变化,仍是之前的那些… 设置缓存的好处无非就是在前端和后端之间建立额外的数据副本,用于减小请求后端服务器的压力,减轻了网路的压力 2020-08-01 Nginx Nginx 中间件
Vue中props属性的使用和理解 Vue中的props:主要用于获取父组件传过来的数据。 话不多说,先上代码,再做分析: 12345678<div id="posts"> <blog-post v-for="post in posts" v-bind:key="post.id" v-bind:postss="pos 2020-07-30 Vue 前端 前端 Vue
Vue中插槽slot的使用与理解 1.slot:名为插槽,实则作为分发数据的一种接口形式。 2.slot主要有具名插槽和作用域插槽。 ①具名插槽主要针对多个插槽,为了区分这些插槽作用于不同的地方,因此在定义插槽的时候,添加name属性用来表示插槽名。 ②作用域插槽主要用于针对不同的插槽、不同的条件下插入不同的数据,以达到理想效果。 话不多说,先上代码,再做分析: 1234567891011121314<div id=&qu 2020-07-23 Vue 前端 前端 Vue