自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 安装好Ubuntu18.04之后要做的事!!大全、详细教程!

安装Ubuntu18.04之后的要做的事: 1、更新源,使用软件更新器选择中国的服务器aliyun即可自动更新缓存,已经各种软件 之后每天更新, shell更新: sudo apt update sudo apt upgrade 2、安装...

2018-08-18 15:06:19 59497 9

原创 Python 多线程死锁的示例

在 Python 中多线程中为了防止资源竞争而出现问题,提供了锁的机制,当一个线程操作资源时进行加锁,操作完毕后释放锁,这样其他线程就不会同时操作资源导出出现异常。 在 Python 多线程中注意是两种锁:互斥锁和递归锁 那么它们有什么区别呢? 互斥锁: 一旦一个线程获得一个互斥锁,会阻塞随后尝试...

2020-05-25 21:07:24 2 0

原创 Django 使用定时任务的多种姿势对比
原力计划

1、安装django-apscheduler pip install django-apscheduler 2、配置settings INSTALLED_APPS = ( ... "django_apscheduler", ) 3、迁移数据库 因为django-ap...

2020-05-17 18:44:51 132 0

原创 Python3 基于协程asyncio的消费者模式

注意本例运行在Linux环境下 本例模拟一个生产者每2-4秒生成一个消息,然后有多个消费者消费这些消息。 暂定每个消费者消费一个消息耗时10秒,这样可以使每个消费者都能消费消息 import time import asyncio import queue import threading imp...

2020-04-30 22:35:49 54 0

原创 Python3 基于线程、协程并发请求、大并发爬虫方法之一

from gevent import monkey; monkey.patch_all() import asyncio import time import requests import aiohttp import sys import threading import gevent imp...

2020-04-30 22:24:48 39 0

原创 Python3 使用多线程、协程并发请求的比较

1、安装相关的库 pip install gevent requests aiohttp 2、实际代码演示 import asyncio import time from gevent import monkey; monkey.patch_all() import requests impor...

2020-04-30 21:20:59 62 0

原创 Python3.7 高级编程之 async/await asyncio 事件循环的使用

什么是事件循环: 事件循环是每个 asyncio 应用的核心。 事件循环会运行异步任务和回调,执行网络 IO 操作,以及运行子进程。 说简单点就是由于python是单线程的 程序在执行中会将所有任务放到队列中去逐一执行,当发现阻塞时就去执行其他任务,知道程序结束。 应用开发者通常应当使用高层级的 ...

2020-04-29 22:39:16 95 0

原创 Python3 浮点数精度问题

''' 很多语言中都有浮点数数据精度的问题,Python中也是 例如:0.1 + 0.2 应该等于0.3 但结果 事实上是 0.30000000004 首先说原因: 1、小数转换成二进制的方法:将小数部分先乘以2,记录整数部分,然后将得到的结果的小数部分乘以...

2020-04-29 22:38:37 55 0

原创 Django 中使用Celery实现异步任务

1、在settings.py 同级目录下,新增一个celery.py的文件 需要注意的是:你的项目目录名要和配置一样 例如我的项目目录名就是 base_django_api 我的目录结构如下: # celery.py from __future__ import absolute_import,...

2020-03-31 21:58:35 89 0

原创 深入理解计算机概念 进程、线程、协程

1、CPU、CPU内核: CPU:是中央处理器的简称,是计算机的运算和控制中心、是信息处理、程序运行的最终执行单元。 CPU内核 是CPU内的核心芯片,内核是CPU的计算引擎,由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据等,是数字处理核心。核心(Die)又称为内核,是CPU最重要的组...

2020-03-31 21:30:09 82 0

原创 Vue 后台管理项目中使用keep-alive防止也没每次打开都重载,影响使用体验

1、修改AppMain.vue 将 加载组件的地方,使用keep-alive包含起来 ...... <keep-alive> <router-view/> </keep-alive> ...... 2、修改具体的业务代码 假设有一个用户管理的页面,修改该页...

2020-03-31 21:28:24 145 0

原创 大白话HTTP/HTTPS协议

1、计算机中什么是协议 在计算机中要与其他设备进行通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种统一的规则。而我们就把这种规则称为协议(protocol)。...

2020-02-17 18:08:21 125 0

原创 Python 实现常见算法之二分法查找

什么是搜索 搜索(又叫查找)是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找 什么是二分法查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有...

2020-02-11 15:11:56 56 0

原创 Python 数据结构之二叉树的实现

1、基本概念 二叉树 是一种简单的树形结构,是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树是一种递归结构。 二叉树的基本概念 空树:不包含任何节点的二叉树成为空树。只包含一个节点的二叉树称为一个单点树。 父...

2020-02-09 16:43:02 336 0

原创 certbot以nginx方式为域名加https证书

ubuntu16.04 server下 1、添加源 sudo add-apt-repository ppa:certbot/certbot 如果报命令 add-apt-repository 找不到,运行 sudo apt-get install -y software-properties-co...

2020-02-09 16:41:20 250 0

原创 Python 数据结构之哈希表的实现

哈希表(Hash table,也叫作散列表),是根据关键码值(Key value)而直接进行访问的数据结构。 也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key...

2020-02-06 16:24:22 303 0

原创 Python 数据结构之队列的实现

队列 是一个抽象的数据结构,与堆栈有些相似。较对比于栈,队列打开两端。 一端总是用来插入数据(排队),另一个是用来删除数据(离队)。 队列使用先入先出的方法,即,第一存储的数据项先被访问。 队列有两端,入口端和出口端,数据只能从入口进入队列。从出口离开队列。因此也被称为FIFO表示先进先出 后进...

2020-02-06 16:23:58 316 0

原创 Python 数据结构之堆栈的实现

堆栈 又称为栈或堆叠,堆栈是一个抽象数据类型(ADT),在大多数编程语言中常用。 堆栈的特性是 只能从一个口子出入数据,因此也被称作 LIFO表示后进先出 后进先出。 堆栈可通过数组,结构和链表来实现。堆栈可以是固定大小或它可动态调整。 # 堆栈基于Python语言的实现 '...

2020-02-06 16:23:20 276 0

原创 Python 数据结构之双向链表的实现

双向链表: 即每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。当节点既是头结点又是尾节点时,两个链接均为空值。 # 双向链表基于Python语言的实现 ''' 双向链表需要实现的...

2020-02-06 16:22:59 271 0

原创 Python 数据结构之单向循环链表的实现

单向循环链表: 单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。 # 单向循环链表基于Python语言的实现 ''' 单向循环链表需要实现的方法: is_empty() 链表是否为空 len() 链表长度 tra...

2020-02-06 16:22:35 263 0

原创 Python 数据结构之单向链表的实现

# 单链表的实现 ''' 单向链表需要实现的方法: is_empty() 链表是否为空 len() 链表长度 travel() 遍历整个链表 add(item) 链表头部添加元素 append(item) 链表尾部添加元素 insert(pos, item) 指定位置...

2020-02-06 16:22:07 201 0

原创 Python 重学requests发起请求的基本方式

安装相关模块 pip install requests requests-toolbelt 代码实例 import requests import json from PIL import Image from io import BytesIO from requests_toolbelt i...

2020-02-06 15:59:35 311 0

原创 Python 标准库base64、hmac、hashlib的基本使用

base64 import base64 # Base64是一种用64个字符来表示任意二进制数据的方法。常用于在URL、Cookie、网页中传输少量二进制数据。 encode_val = base64.b64encode('test ak47'.encode()) # 将...

2020-02-06 15:58:58 366 0

原创 Python 高阶函数lambda、map、reduce、filter、zip、sorted等使用

print('****************************************************lambda*************************************************************') # lambda函数...

2020-02-06 15:58:00 336 0

原创 Python 使用pillow合并两个图像

from PIL import Image # pillow 基本上已经是Python平台上图像处理标准库了。他的功能很强大,但API却很简单实用。 from io import BytesIO import requests ''' 常有方法 Image.form...

2020-01-13 16:53:23 431 0

原创 Linux 高并发核心配置

1、open file(调整同时打开文件数量)的限制 使用命令ulimit -a可以查看 修改在 vim /etc/security/limits.conf 文件最后输入 建议配置:注意open file建议不超过65535 * soft nofile 65535 * hard nofile 65...

2020-01-08 10:41:55 75 0

原创 MySQL运维记录

mysql 查看登录的id以及操作的库: select * from information_schema.processlist; 统计登录的ip以及当前操作的ip: SELECT substring_index(host, ':',1) AS host_name,stat...

2019-12-19 17:08:56 71 0

原创 因为依赖问题无法安装mysqlclient时的解决方案记录

Ubuntu系统下: sudo apt install libmysqld-dev python3-dev python-dev openssl-devel gcc libffi-devel python-devel libmysqlclient-dev libssl-dev libcrypto+...

2019-12-19 16:55:20 102 0

原创 vue-element-template 后台管理设置超时自动退出登录

简单实现,修改app.vue文件即可 <template> <div id="app" @click="clicked"> <router-view/> </div> </templat...

2019-12-10 14:26:18 445 0

原创 django 利用中间件和jwt 使被冻结用户无任何操作权限

1、jwt相关方法 将得到的token转为payload 再将payload转为user id def jwt_encode_handler(payload): return jwt.encode( payload, api_settings.JWT_PRI...

2019-12-02 16:10:45 112 0

原创 Django 使用 signals 在数据被新增、修改、删除时执行一些业务逻辑

1、模型示例 from django.db import models from soft_delete_it.models import SoftDeleteModel class BaseModel(models.Model): sort = models.IntegerField(...

2019-11-26 13:23:27 143 0

原创 Vue 将打包后的静态文件上传至阿里云oss

1、配置config目录下的index.js 注意 assetsSubDirectory 不要和原来的冲突 build: { ..... assetsSubDirectory: 'test-static', oss_publicPath: 'y...

2019-11-04 10:10:48 989 0

原创 vue-cropper 写一个支持图片剪裁的上传组件

1、组件完整代码如下 <template> <div> <el-upload :action="action_url" :headers="headers" :show-file-...

2019-10-27 14:53:43 463 0

原创 Django DRF model 多对多关系使用示例

本例环境:Django=2.0.6 djangorestframework=3.9.2 1、模型示例 from django.db import models class BaseModel(models.Model): sort = models.IntegerField(null=T...

2019-10-24 08:35:51 602 0

原创 Django DRF ModelSerializer 对不属于模型中的字段进行验证的解决方法

示例的序列化器 class AddFlowBodySerializer(serializers.ModelSerializer, BaseModelSerializer): approval_flow = serializers.IntegerField(label='审批流ID...

2019-10-24 08:34:42 357 0

原创 Django DRF在创建父表数据时同时将子表数据一同创建

1、用于测试的模型 # 父表模型 class Auth(SoftDeleteModel, BaseModel): auth_type = models.CharField(max_length=255, verbose_name='权限名称') class M...

2019-09-08 17:06:00 301 0

原创 Django 使用models.Manager扩展查询的方法

先来扩展一下使用.all()查询时,通过传入自定义参数返回不同的数据集 1、在模型中使用models.Manager # 自定义扩展.all()方法 class MiddlewareRegionSplitManager(models.Manager): def all(self, user...

2019-09-07 10:29:31 110 0

原创 使用supervisor 管理linux进程 实例 管理uwsgi进程

1、安装supervisor 方式1: apt install supervisor 方式2: 注意要在Python2.7环境下,supervisor不支持Python3 pip install supervisor 2、supervisor配置文件 默认会生成一个文件 /etc/supe...

2019-09-06 13:05:27 133 0

原创 Python3.7 高级编程之 async/await asyncio Future可等待对象、异步的实现

在前面也提到过,Python中Future对象是可以在await语句中使用的可等待对象,它具体用法,以及如何实现异步,如下例代码所示 import asyncio, time # Python 异步的实现 非阻塞 # Python Future对象属于可等待对象,因此可以在其他协程中被等待 a...

2019-09-01 11:55:49 456 0

原创 Python3.7 高级编程之 async/await asyncio 通过asyncio.wait的使用

Python中的异步 # demo.py import asyncio, time # asyncio.wait() 等待执行完成 async def foo(): await asyncio.sleep(2) return 50 async def main(): ...

2019-09-01 11:55:11 1620 0

提示
确定要删除当前文章?
取消 删除