随笔分类 -  python

1 2 3 下一页

部署基于python的web发布环境(第四篇):环境部署5:centos7发布网站示例nginx+uWSGI+django+virtualenvwrapper+supervisor发布web服务器
摘要:一、虚拟环境之virtualenvwrapper 为什么需要 virtualenvwrapper 为什么需要 virtualenvwrapper?而不是virtualenv?这要从 virtualenv 说起。virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 阅读全文

posted @ 2020-03-03 17:49 Nicholas-- 阅读(1044) 评论(1) 推荐(1) 编辑

部署基于python的web发布环境(第三篇):环境部署4:centos7安装uwsgi、发布网站
摘要:一、业务逻辑图 二、安装uwsgi uwsgi是服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回。 uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。 nginx 和 u 阅读全文

posted @ 2020-02-29 18:30 Nicholas-- 阅读(710) 评论(0) 推荐(0) 编辑

部署基于python的web发布环境(第二篇):环境部署3:centos7.5安装python,安装使用virtualenv
摘要:一、下载python [root@web src]# pwd /usr/src ​ [root@web src]# wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz 二、安装依赖 [root@web src]# yum 阅读全文

posted @ 2020-02-28 19:43 Nicholas-- 阅读(659) 评论(0) 推荐(0) 编辑

部署基于python的web发布环境(第一篇)环境部署1:安装nginx、环境部署2:安装mysql5.7
摘要:环境部署1安装nginx 见 nginx之旅(第一篇):nginx下载安装、nginx启动与关闭、nginx配置文件详解、nginx默认网站 centos7安装mysql5.7 本次安装采用源码安装,安装版本为mysql-5.7.29 版本nginx 1.15.5,mysql-5.7.29 系统环境 阅读全文

posted @ 2020-02-28 19:28 Nicholas-- 阅读(381) 评论(0) 推荐(0) 编辑

Python之路(第四十七篇) 协程:greenlet模块\gevent模块\asyncio模块
摘要:一、协程介绍 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 协程相比于线程,最大的区别在于,协程不需要像线程那样来回的中断切换,也不需要线程的锁机制,因为线程中断或者锁机制都会对性能问题造成 阅读全文

posted @ 2019-10-31 23:16 Nicholas-- 阅读(6285) 评论(0) 推荐(1) 编辑

Python之路(第四十六篇)多种方法实现python线程池(threadpool模块\multiprocessing.dummy模块\concurrent.futures模块)
摘要:一、线程池 很久(python2.6)之前python没有官方的线程池模块,只有第三方的threadpool模块, 之后再python2.6加入了multiprocessing.dummy 作为可以使用线程池的方式, 在python3.2(2012年)之后加入了concurrent.futures模 阅读全文

posted @ 2019-10-30 22:31 Nicholas-- 阅读(5190) 评论(0) 推荐(0) 编辑

Python之路(第四十五篇)线程Event事件、 条件Condition、定时器Timer、线程queue
摘要:一、事件Event Event(事件):事件处理的机制:全局定义了一个内置标志Flag,如果Flag值为 False,那么当程序执行 event.wait方法时就会阻塞,如果Flag值为True,那么event.wait 方法时便不再阻塞。 Event其实就是一个简化版的 Condition。Eve 阅读全文

posted @ 2019-08-31 23:32 Nicholas-- 阅读(1843) 评论(0) 推荐(1) 编辑

Python之路(第四十四篇)线程同步锁、死锁、递归锁、信号量
摘要:在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock Rlock Semaphore Event Condition 用来保证线程之间的同步,后者保证访问 阅读全文

posted @ 2019-08-31 21:10 Nicholas-- 阅读(495) 评论(0) 推荐(0) 编辑

Python之路(第四十三篇)线程的生命周期、全局解释器锁
摘要:一、线程的生命周期(新建、就绪、运行、阻塞和死亡) 当线程被创建并启动以后,它既不是一启动就进入执行状态的,也不是一直处于执行状态的,在线程的生命周期中,它要经过新建(new)、就绪(Ready)、运行(Running)、阻塞(Blocked)和死亡(Dead)5 种状态。 尤其是当线程启动以后,它 阅读全文

posted @ 2019-07-31 22:23 Nicholas-- 阅读(385) 评论(0) 推荐(1) 编辑

Python小练习:批量删除多个文件夹内的相同文件
摘要:应用场景: 下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除该文件 使用环境:win7,python3.6 代码: 1、直接用for循环 由于os.walk()方法自带深度遍历功能,这里直接使用for循环即可找到所有文件夹及文件 2、用递归的方式: 阅读全文

posted @ 2019-07-31 15:32 Nicholas-- 阅读(1051) 评论(3) 推荐(0) 编辑

Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程
摘要:一、线程相关的其他方法 例子 二、线程的join() 与进程的join方法作用类似,线程的 join方法的作用是阻塞,等待子线程结束,join方法有一个参数是timeout,即如果主线程等待timeout,子线程还没有结束,则主线程强制结束子线程。 但是python 默认参数创建线程后,不管主线程是 阅读全文

posted @ 2019-05-27 12:47 Nicholas-- 阅读(603) 评论(0) 推荐(1) 编辑

Python之路(第四十一篇)线程概念、线程背景、线程特点、threading模块、开启线程的方式
摘要:一、线程 ​ 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加 阅读全文

posted @ 2019-05-19 23:30 Nicholas-- 阅读(452) 评论(0) 推荐(0) 编辑

Python之路(第四十篇)进程池
摘要:一、进程池 进程池也是通过事先划分一块系统资源区域,这组资源区域在服务器启动时就已经创建和初始化,用户如果想创建新的进程,可以直接取得资源,从而避免了动态分配资源(这是很耗时的)。 线程池内子进程的数目一般在3~10个之间,当有新的任务来到时,主进程将通过某种方式选择进程池中的某一个子进程来为之服务 阅读全文

posted @ 2019-05-12 22:30 Nicholas-- 阅读(753) 评论(0) 推荐(0) 编辑

Python之路(第三十九篇)管道、进程间数据共享Manager
摘要:一、管道 概念 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信. 先画一幅图帮助大家理解下管道的基本原理 现有2个进程A和B,他们都在内存中开辟了空间,那么我们在内存中再开辟一个空间C,作用是连接这两个进程的。对于 阅读全文

posted @ 2019-04-29 00:13 Nicholas-- 阅读(3165) 评论(0) 推荐(0) 编辑

Python之路(第三十八篇) 并发编程:进程同步锁/互斥锁、信号量、事件、队列、生产者消费者模型
摘要:一、进程锁(同步锁/互斥锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理。 例子 加锁后 例子2 多个进程共享同一文件 文件当数据库,模拟抢票 未加锁版 输出结果 加锁版 分析 阅读全文

posted @ 2018-12-31 23:04 Nicholas-- 阅读(512) 评论(0) 推荐(0) 编辑

Python之路(第三十七篇)并发编程:进程、multiprocess模块、创建进程方式、join()、守护进程
摘要:一、在python程序中的进程操作 之前已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么也可以在程序中再创建进程。多个进程可以实现并发效果,也就是说,当程序中存在多个进程 阅读全文

posted @ 2018-12-27 09:25 Nicholas-- 阅读(461) 评论(0) 推荐(0) 编辑

Python之路(第三十六篇)并发编程:进程、同步异步、阻塞非阻塞
摘要:一、理论基础 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。 即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时 阅读全文

posted @ 2018-12-26 10:02 Nicholas-- 阅读(423) 评论(0) 推荐(1) 编辑

Python之路(第三十五篇) 并发编程:操作系统的发展史、操作系统的作用
摘要:一、操作系统发展史 第一阶段:手工操作 —— 真空管和穿孔卡片 ​ 第一代之前人类是想用机械取代人力,第一代计算机的产生是计算机由机械时代进入电子时代的标志,从Babbage失败之后一直到第二次世界大战,数字计算机的建造几乎没有什么进展,第二次世界大战刺激了有关计算机研究的爆炸性进展。 ​ lowa 阅读全文

posted @ 2018-11-29 10:05 Nicholas-- 阅读(376) 评论(0) 推荐(0) 编辑

Python之路(第三十四篇) 网络编程:验证客户端合法性
摘要:一、验证客户端合法性 如果你想在分布式系统中实现一个简单的客户端链接认证功能,又不像SSL那么复杂,那么利用hmac+加盐的方式来实现。 客户端验证的总的思路是将服务端随机产生的指定位数的字节发送到客户端,两边同时用hmac进行加密,然后对生成的密文进行比较,相同就是合法的客户端,不相同就是不合法的 阅读全文

posted @ 2018-11-27 15:53 Nicholas-- 阅读(271) 评论(0) 推荐(0) 编辑

Python之路(第三十三篇) 网络编程:socketserver深度解析
摘要:一、socketserver 模块介绍 socketserver是标准库中的一个高级模块,用于网络客户端与服务器的实现。(version = "0.4") 在python2中写作SocketServer,在python3中写作socketserver。 socoketserver两个主要的类,一个是 阅读全文

posted @ 2018-11-23 21:48 Nicholas-- 阅读(883) 评论(1) 推荐(1) 编辑

1 2 3 下一页

导航