python
文章平均质量分 77
木木木可可可
这个作者很懒,什么都没留下…
展开
-
supervisor管理并监控服务器任务进程,安装及其管理的相关命令
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选...原创 2019-09-11 21:11:51 · 912 阅读 · 0 评论 -
python内置的排序算法Timsort浅析
Timsort是一种复杂度高的排序算法,稳定并且效率很高,是python,java等默认使用的一种排序算法Timsort从某种意义上来说是插入排序与归并排序的结合,python中,当一个列表的长度小于等于64时,则默认使用插入排序算法逻辑,对数据进行排序,因为在数据量较小的情况下,插入排序的效率很高,比选择,快排,希尔等都高。当一个列表长度大于64时,就会结合归并和插入排序算法使用,当然,...原创 2019-09-05 19:27:11 · 1901 阅读 · 2 评论 -
python的快速排序算法详解
def quick_sort(arr): if len(arr) < 2: #当数据集长度为1时,结束递归 return arr mid = arr[len(arr) // 2] #基准数可以随便选,我这里就对2取整了 left,right = [],[] #申明两个列表用来保存左右分区的数 arr.remove(mid) #将基准数从数组中移除 for i in ar...原创 2019-09-05 10:55:59 · 736 阅读 · 0 评论 -
python排序算法之五大排序算法解析(1)
一,冒泡排序def bubble_sort(arr): """冒泡排序""" # 第一层for表示循环的遍数 for i in range(len(arr) - 1): # 第二层for表示具体比较哪两个元素 for j in range(len(arr) - 1 - i): if arr[j] > arr[j...原创 2019-09-04 22:45:21 · 172 阅读 · 0 评论 -
python中的装饰器
装饰器也叫语法糖,本质上是一种闭包函数,可以使用@语法加在函数或者类上面,以函数为例,它的作用就是在不修改被装饰函数代码的情况下扩展其功能,符合封闭开放的原则。它实现的原理是什么呢?其实装饰器就是把被装饰函数当作自己的参数,在自己内部调用该函数,并加上一些辅助逻辑,然后再把被当作参数的函数返回给内嵌函数,再return内嵌函数将新加的功能一起返回给装饰器,于此同时,底层代码会设置一个与原...原创 2019-09-04 16:43:00 · 179 阅读 · 0 评论 -
python中的单例模式
在某些场景下,我们在实例化类的时候,可能会有无论在哪里实例化这个类,对象都是同一个的需求,本质上就是,在内存中,只开辟了一个实例化对象的存储空间,例如我们电商中常用的购物车,就是一个比较经典的单例模式的体现实现单例模式的方法大致分为五种1,使用类中的__new__方法:代码如下:class Test(object): def __new__(cls, *args, **kwargs...原创 2019-09-04 11:51:02 · 138 阅读 · 0 评论 -
python中的反射方法,getattr,setattr,hasattr,delattr
python 面向对象中的反射:通过字符串的形式操作对象相关的属性 python 中的一切事物都是对象(都可以使用反射)四个反射相关的函数hasattr :判断是否有此变量,返回 bool 值getattr : 获取属性值或者获取方法变量的地址setattr :给类或者对象设置属性或者方法 (用的场合很少,了解即可)delattr: 删除类或者对象的属性或方法(用的场合很少,了解即可)...原创 2019-09-02 23:33:26 · 270 阅读 · 0 评论 -
python的常用魔术方法
1,call:可以让一个实例化后的对象当成函数调用例子:class CallMeBaby(): def hello(self): print('world') def __call__(self): print('call me baby')c = CallMeBaby()c()结果为call me baby于是乎,对象当做函数调用2,del:销毁魔术方法触发...原创 2019-09-02 22:07:38 · 168 阅读 · 0 评论 -
python使用多进程完成文件复制的功能
进程,线程,协程,这都是在实际项目中常用的东西,在我的前几篇文章中有讲到过线程,有兴趣的朋友可以去看看这篇文章我们主要还是通过案例来讲解一下python中的进程python中进程的启用方式也有很多种,1,通过定义函数调用2,通过类实现3,通过进程池实现以上的几种方法都可以接下来来看一下我们的案例import osfrom multiprocessing import Pool,c...原创 2019-09-02 19:35:35 · 505 阅读 · 0 评论 -
python基础知识温习一下,基础知识回顾汇总
1,字典推导式:dict1 = {k:v for k,v in zip(list('abc'),list('123'))}print(dict1)如果不用字典推导式就要写成这样:list1 = ['a','b','c']list2 = [1,2,3]z = zip(list1,list2)for k,v in z: print({k:v})你看多麻烦!2,元组的ind...原创 2019-09-02 14:31:37 · 446 阅读 · 0 评论 -
python的递归函数
先看一波案例def fun1(num1): if num1 == 1: return 1 rest = num1 * fun1(num1-1) return restprint(fun1(3))"""上面是一个求阶乘的递归函数在调用的时候,例如,从3开始调起func(3) => 3*func(2)func(2) => 2*...原创 2019-09-02 14:07:58 · 155 阅读 · 0 评论 -
hash表是怎么生成的?哈希表浅析
hash表的用途十分广泛,通俗来讲,hash表是一个用来存储key-value键值对的集合。每一个键值对也叫做Entry,这些Entry会分散的储存在一个数组当中,这个数组就是HashMap的主干python中有许多数据类型都是使用hash表实现的,比如字典,集合,计数器等。接下来我们来实现一个简单的hash表,在写代码之前,我们先大致了解一下hash表是怎么储存数据的例如有一个数据{‘a...原创 2019-09-06 00:14:38 · 1446 阅读 · 0 评论 -
mysql与python的交互,pymysql模块和mysql模块怎么与数据库进行连接?
使用pymysql与数据库建立连接方法1:import pymysqlcon = pymysql.connect( #创建连接 host='localhost', #地址 port=3306, #端口号 user='root', #用户 password=123, #密码 db='db1' #选择数据库)cursor = con....原创 2019-09-06 11:28:15 · 333 阅读 · 0 评论 -
upstream prematurely closed connection while reading response header from upstream
项目部署在云服务器一段时间之后,我发现当我在上传图片的时候,nginx就会给我报502的错误,以前是不会的,然后查看日志,就发现了‘upstream prematurely closed connection while reading response header from upstream’这句话,去文档看过,在网上找过,大部分给出的答案都是上游服务器连接超时,要在nginx里面配置超时...原创 2019-09-11 19:06:05 · 4695 阅读 · 0 评论 -
python中的协程基本介绍以及简单使用,协程是什么?
先理解什么是协程:1,协程又称微线程,它的上下文切换不是由cpu进行控制。2,一个线程中可以包含多个协程,对cpu而言,并不存在协程这个概念。3,通俗来说,协程就是协同多任务。4,协程拥有自己的寄存器上下文和栈,协程调度切换到其他协程时,将寄存器上下文和栈保存,在切回到当前协程的时候,恢复先前保存的寄存器上下文和栈。协程有什么优点?1,无需负担上下文切换的开销。2,不需要加锁。3,...原创 2019-09-11 14:44:14 · 1074 阅读 · 0 评论 -
python中的命名空间,作用域和lambda匿名函数详解
命名空间的定义命名空间指的是保存程序中的变量名和值的地方。命名空间的本质是一个字典, 用来记录变量名称和值。字典的 key 是变量的名称,字典的 value 对于的是变量 的值。 例如 {‘name’:’zs’,’age’:10}命名空间一共分为三种:局部命名空间、全局命名空间、内置命名空间1,局部空间: 每个函数都有自己的命名空间,叫做局部空间,它记录了函数的变量,包括函数 的参数 和...原创 2019-09-11 00:13:00 · 794 阅读 · 0 评论 -
关于树,二叉树,满二叉树,完全二叉树的详细介绍以及其储存形式,查找算法等解释
在了解二叉树之前,我们先来看一下树的定义树, 木本植物之总名,主要由根、干、枝、叶、花、果组成。。。。皮一下很开心进入正题了1,树是有n(n>=0)个结点组成的有限集合T,n=0时称为空树,若n>1时,其余结点被分为m(m>0)个互不相交的子集T1,T2…Tm,其中每个子集本身又是一棵树,称其为根的子树(Subtree)。这是树的递归定义,即用树来定义树,只有一个结点...原创 2019-09-10 23:04:17 · 1010 阅读 · 0 评论 -
python多进程的threadlocal对象
在多线程的环境下,某些特定场景,多线程使用自己的局部变量比使用全局变量要好,不会影响其他线程因此不用加锁但是线程在使用局部变量的时候也有缺点,就是当多层函数调用的时候,参数传起来不是很方便,如:这样传参,如果调用的函数较多较频繁,则很麻烦再如,我们可以使用全局字典的方式进行提取每个线程自己对应的值,取消传参的操作,如:将线程的名字作为键,变量直接传入字典中作为对应线程键的值这样也可以...原创 2019-09-10 17:37:28 · 176 阅读 · 0 评论 -
多进程与多线程的区别
https://blog.csdn.net/weixin_45154837/article/details/100690909关于多进程的文章https://blog.csdn.net/weixin_45154837/article/details/100138135关于多线程的文章进程与线程的关系,什么场景下该用哪一个?各自的优点与缺点?进程与线程的关系每个进程中都至少有一个线程区...原创 2019-09-10 16:47:48 · 227 阅读 · 0 评论 -
python多进程之间的通信与进程池的使用
进程是资源分配的最小单位,线程是cpu调度的最小单位每个进程都会申请独立的资源,相互隔离t1 = []def add_num(num): list1.append(num) print(list1)if __name__ == '__main__': p_list = [] for i in range(10): p = Process...原创 2019-09-10 14:36:49 · 508 阅读 · 0 评论 -
python中的numpy库的简单使用,数组对象的属性与方法,类型等
Numpy是用于数据科学计算的基础,不但能够完成科学计算任务,还能被 用作高效地多维数据容器。用于存储和处理大型矩阵。Python提供了一个array模块,和list不同,它直接保存数值,但是由于 Python 的array模块不支持多维,也没有各种运算函数。Numpy 弥补了这一遗憾。Numpy提供了一种存储单一数据类型的多维数 组——ndarray(下文统称数组)数组是用一块整体的内存来...原创 2019-09-08 20:49:18 · 968 阅读 · 0 评论 -
python与mongoDB交互,怎么与mongoDB建立数据库连接?
mongoDB作为存储海量低价值数据的首选数据库,在很多场景都能看到它的身影,它也是一款最像关系型数据库的非关系型数据库from pymongo import MongoClient #导入客户端代理client = MongoClient(host='localhost',port=27017) #建立连接client.admin.authenticate('admin','123...原创 2019-09-06 11:47:26 · 394 阅读 · 0 评论 -
python怎么建立redis的连接,建立与redis数据库的两种方法
redis与mysql一样,是大家常用的数据库了,这里就和大家分享一下怎么用python与redis数据库建立连接方法1:import rediscon = redis.Redis( #创建redis连接 host='localhost', port=6379, password='123', #redis数据库没有用户名 db=0)con.hms...原创 2019-09-06 11:36:35 · 903 阅读 · 0 评论 -
python的字符映射转换,str.maketrans(params1.paramas2)
用案例来解释:str1 = 'hello world!'intab = 'world!'outtab = 'python'str2 = str.maketrans(intab,outtab) #这是生成字符串映射,outtab是intab的映射表,也就是说w对应p,o对应y,以此类推print(str2) print(str1.translate(str2)),这里对str1字符串...原创 2019-09-02 11:47:46 · 585 阅读 · 0 评论 -
python中的深浅拷贝
用案例来理解list1 = [1,2,3,4,5]list2 = list1.copy()print(list2)list1.append(6)print(list2)list1 = [1,2,3,[4,5]]list2 = list1.copy()print(list2)list1[3].append(6)print(list2)list1.append(7)print...原创 2019-09-02 11:09:10 · 125 阅读 · 0 评论 -
django原生的序列化serialize解析
在写接口的时候,大家都离不开对query结果集的序列化嗯嗯嗯,一般我们都有DRF里面的序列化工具,但是django原生的serialize你们有用过吗?????????????上代码:from django.core.serializers import serializeclass Test(APIView): def get(self,request): origin_dat...原创 2019-08-20 22:18:16 · 752 阅读 · 0 评论 -
python的assert的作用
assert是断言语句用白话去理解:我断言1等于2 ,如果不等于,就报错assert 1==2结果:Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/爬虫训练向/requests_run/test.py", line 8, in <module> asse...原创 2019-08-20 21:57:11 · 2255 阅读 · 0 评论 -
Django怎么写接口?系列整理
接口是什么?大部分刚入门的人估计都比较难以理解其实说的不严谨一些,我们编写的视图,其实就是一种接口在django中一讲到接口,估计大家都会想起restframework,当然,这更多的讲究的是一种风格,而非规则,接口的编写也没有“非这样不可的说法”,在实际中,接口的编写更多与我们的实际业务相结合,怎样写接口于我们的业务更贴切,我们就怎么去写给个例子:class CountDataApi...原创 2019-08-20 17:39:05 · 3451 阅读 · 2 评论 -
验证码报OSError的错误,500状态码
报这个错误,大概率是字体错误去自己的静态下面查看一下tty文件是否存在原创 2019-08-20 15:24:30 · 986 阅读 · 0 评论 -
django配合xadmin编写celery定时任务以及异步任务
celery是项目中不可或缺的神器比如,当我们注册账户的时候,需要发送邮箱验证码主程序运行到这来,邮箱发送可能需要30秒不可能网页加载30秒,一直转圈圈,等邮件发送完毕才能进行下一步操作吧这样你的项目上线后除了你自己基本没人会注册还有比如判断用户登录是否为每日首次登录,当项目较小的时候,有一种策略就是设置一个用户每日登录状态的字段,当用户当日登录过,就修改该状态为False,然后用...原创 2019-08-14 11:44:48 · 313 阅读 · 0 评论 -
flask项目部署上线,详细步骤
Flask-cache 不稳定1.0.x需要使用Python 3.7版本进行兼容登陆装饰器Flask在装饰器完成之后,会将所有的函数名称修改为inner,导致视图被覆盖,项目启动不了Functools是Python3版本开发的一个模块,这个模块用来处理函数的各种机制,保留原函数的内建属性(doc,name)(一)Flask项目部署准备centos环境,安装Python3.5版本,...原创 2019-08-14 10:32:22 · 2254 阅读 · 0 评论 -
Reverse for 'content' with arguments '('',)' not found. 1 pattern(s) tried:
一般出现这个问题的情况,是在使用url命名跳转的时候出现的问题这种问题的解决方法也很简单如果{% url 'art_content' art.uid %}错误,先检查是否后端传入的对象art是否错误,再看url命名是否错误再看href是否有书写错误最后仍然无法解决的话放出终极大招:href="/article/content/{{ art.uid }}"老老实实写路径把...原创 2019-08-14 10:12:05 · 3863 阅读 · 0 评论 -
vue配合django接口,v-for循环的时候显示不了数据
vue配合django接口 v-for循环的时候显示不了数据原创 2019-08-14 10:04:16 · 1914 阅读 · 0 评论 -
怎么写接口
rest framework工作当中,逐渐多的出现不使用页面展示数据,直接使用数据接口,这样的好处:1、首先可以实现动静分离。将数据库和查询和页面渲染彻底分开。2、网站可以支持脚本批量开发。请求接口的方式最原始的接口搭建是使用类视图搭建接口,后来发现接口规范很难约束。就有前辈写了接口框架,使用框架进行规范的接口开发。这个叫restful,django拥有restful的插件django...原创 2019-08-09 09:43:35 · 20381 阅读 · 0 评论 -
No application found. Either work inside a view function or push
No application found. Either work inside a view function or push在使用flask的时候出现这种报错,应该是在部署蓝图的时候想要创建数据表出现了缺少命令配置的操作,可以试一试这一种方法pip install flask_migratepip install flask_script1.首先安装这两个模块,这是两个配合蓝图的模块...原创 2019-08-09 09:31:10 · 2127 阅读 · 0 评论 -
安装支持python3的xadmin版本
简单一个链接pip3 install git+git://github.com/sshwsfc/xadmin.git@django2原创 2019-08-16 10:29:21 · 885 阅读 · 0 评论 -
django restframework APIView怎么写接口?post接口请求
post请求一般都是用来新增数据在APIView中怎么去写呢?直接上代码:class BookView(APIView): def post(self,request): # print(request.data) verify_data = BookSerialize(data=request.data) if verify_data...原创 2019-08-21 15:16:37 · 4740 阅读 · 0 评论 -
Django项目使用FastDFS作为静态文件的存储,FastDFS与python交互,详细步骤
FastDFS在上一篇文章中,我们已经在虚拟机里面配置好了,并且搭配了nginx提高文件提供的效率FastDFS能够解决海量的文件存储,并且它的检索内容指纹,发现相同文件就不再进行新的储存的机制对于相同文件重复储存,浪费空间资源的问题有很好的解决。FastDFS已经搭建好了,那么我们怎么在我们python的django项目中使用呢?博主在自己的博客中就使用了FastDFS,现在就通过实例还给...原创 2019-08-31 01:04:14 · 1669 阅读 · 2 评论 -
python多线程爬虫之多线程之间的通信——队列之生产与消费模式
在上上篇文章讲多线程的时候附上了一则爬取腾讯招聘的多线程爬虫,也用到了队列,刚刚我做了写改动,就再写一篇文章把代码贴出来吧:class Tencent(Thread): #生产者线程,专门发送请求,然后将请求结果放入队列 def __init__(self,queue,t): self.headers = {'User-Agent': 'Mozilla/...原创 2019-08-29 19:53:07 · 444 阅读 · 0 评论 -
用python操作redis数据库集群
redis集群在上篇文章中我们已经搭建好了,那用python怎么与之进行交互呢?先进行pip install redis-py-cluster安装好后,进入到项目,建立连接,需要用到StrictRedisCluster这个对象然后运行打印一下成功插入,我们用命令行去redis数据库中查询一下,连接到redis集群ok,成功取到数据,那么python与数据库的交互的知识就先分享...原创 2019-08-29 00:05:04 · 510 阅读 · 1 评论