https://pic.cnblogs.com/avatar/1285461/20190710101247.png

随笔分类 -  python学习

摘要:将项目打包成模块的想法来自于flask文档教程,这不是在PyCon上和阿明合了照嘛,这不得多看看人家的东西。有兴趣的可以看看文档的项目可安装化部分,作者将flask项目打包成一个包,使其可以再任何地方导入项目并允许,也可以通过 的方式来安装项目并安装相关的依赖。 可以先瞄一眼官方的打包指南: "跳转 阅读全文
posted @ 2019-10-03 10:21 学一点也是好 阅读(10094) 评论(0) 推荐(0)
摘要:一、安装pyenv 安装pyenv 也可以直接通过brew安装: 添加到环境变量: 二、命令参考: pyenv commands pyenv local pyenv global pyenv shell pyenv install pyenv uninstall pyenv rehash pyenv 阅读全文
posted @ 2019-08-08 15:10 学一点也是好 阅读(528) 评论(0) 推荐(1)
摘要:Python重试模块retrying 工作中经常碰到的问题就是,某个方法出现了异常,重试几次。循环重复一个方法是很常见的。比如爬虫中的获取代理,对获取失败的情况进行重试。 刚开始搜的几个博客讲的有点问题,建议看官方文档,还有自己动手实验。 参考: https://segmentfault.com/a 阅读全文
posted @ 2019-07-18 14:45 学一点也是好 阅读(13030) 评论(5) 推荐(5)
摘要:通过TimedRotatingFileHandler按时间切割日志 线上跑了一个定时脚本,每天生成的日志文件都写在了一个文件中。但是日志信息不可能输出到单一的一个文件中。 原因有二:1.日志文件越来越大会影响系统的性能。2.日志文件格式不够清晰,比如我想看今天的日志,不太方便找到的今天的日志信息(即 阅读全文
posted @ 2019-07-17 14:47 学一点也是好 阅读(21069) 评论(0) 推荐(2)
摘要:APScheduler定时任务 APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。 一、基本架构 1. 触发器 triggers:设定触发任务的条件 描述一个任务何时被触发,按日期或按时间间隔 阅读全文
posted @ 2019-07-15 09:20 学一点也是好 阅读(4550) 评论(0) 推荐(0)
摘要:清理特殊文本 unicodedata.normalize(form, unistr) 把一串UNICODE字符串转换为普通格式的字符串,具体格式支持NFC、NFKC、NFD和NFKD格式。 Unicode标准定义了四种规范化形式: Normalization Form D (NFD),Normali 阅读全文
posted @ 2019-07-08 19:22 学一点也是好 阅读(646) 评论(0) 推荐(0)
摘要:一、介绍 虚拟环境-virtualenv是一个用于隔绝的python环境的工具,虚拟环境与本地环境互相隔离,互不影响,例如我们要安装django2.0的版本但是本地已经安装了1.1的,这时只需要在本地创建虚拟环境,在虚拟环境中安装django2.0即可了。 二、命令创建虚拟环境 1.安装 2.创建虚 阅读全文
posted @ 2018-11-08 16:46 学一点也是好 阅读(635) 评论(0) 推荐(0)
摘要:一、pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: 方法二(pycharm IDE): [File] >> [settings] >> [Project: study] >> [Projec 阅读全文
posted @ 2018-09-18 17:04 学一点也是好 阅读(728) 评论(0) 推荐(0)
摘要:一、进程池与线程池 实现并发的手段有两种,多线程和多进程。注:并发是指多个任务看起来是同时运行的。主要是切换+保存状态。 当我们需要执行的并发任务大于cpu的核数时,我们需要知道一个操作系统不能无限的开启进程和线程,通常有几个核就开几个进程,如果进程开启过多,就无法充分利用cpu多核的优势,效率反而 阅读全文
posted @ 2018-09-10 22:29 学一点也是好 阅读(660) 评论(0) 推荐(0)
摘要:一、GIL介绍 GIL全称 Global Interpreter Lock ,中文解释为全局解释器锁。它并不是Python的特性,而是在实现python的主流Cpython解释器时所引入的一个概念,GIL本质上就是一把互斥锁,将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,从而 阅读全文
posted @ 2018-09-07 19:20 学一点也是好 阅读(562) 评论(0) 推荐(1)
摘要:一、进程之间通信 进程的任务有三种状态:运行,就绪,阻塞。 加锁可以让多个进程修改同一块数据时,同一时间只能由一个任务可以进行修改,即串行的修改。牺牲了速度,保证了数据安全。 虽然可以使用文件共享数据实现进程间的通信,但是效率太低,还需要自己加锁处理。为了解决这些问题,便使用到了multiproce 阅读全文
posted @ 2018-09-06 16:14 学一点也是好 阅读(1823) 评论(0) 推荐(1)
摘要:一、操作系统基础: 进程的概念起源于操作系统,操作系统其它所有概念都是围绕进程来的,所以我们了解进程之前先来了解一下操作系统 两大功能: 1.将复杂的硬件操作封装成简单的接口给应用程序或者用户去使用 2.将多个进程对硬件的竞争变得有序 操作系统处理进程的发展简略: 1.串行:一个任务完整的运行完毕才 阅读全文
posted @ 2018-09-05 16:12 学一点也是好 阅读(210) 评论(0) 推荐(0)
摘要:一、基于UDP协议通信的套接字 udp是没有链接的,所以先启动哪一端都不会报错 import socket server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server.bind(('127.0.0.1',8082)) while Tru 阅读全文
posted @ 2018-09-04 19:24 学一点也是好 阅读(207) 评论(0) 推荐(0)
摘要:一、基于tcp协议的套接字(通信循环+链接循环) 服务端应该遵循: 1.绑定一个固定的ip和port 2.一直对外提供服务,稳定运行 3.能够支持并发 基础版套接字: from socket import * server = socket(AF_INET, SOCK_STREAM) server. 阅读全文
posted @ 2018-09-03 20:17 学一点也是好 阅读(525) 评论(0) 推荐(0)
摘要:一、网络基础 网络建立的目的是为了数据交互(通信) 如何实现通信: 1.建立好底层的物理连接介质 2.有一套统一的通信标准,称之为互联网协议 1.osi七层协议 互联网协议按照功能的不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行的常见物理设备 2.tcp/ip五层协议模型讲解 2. 阅读全文
posted @ 2018-08-29 19:44 学一点也是好 阅读(229) 评论(0) 推荐(0)
摘要:单例介绍: 单例即单个的实例,指的是同一个类实例化多次的结果都是指向同一个对象,用于节省内存空间 如果我们从配置文件中读取配置信息来进行实例化,在配置相同的情况下,就没必要重复产生对象浪费内存了。 实现方式四的sigleton文件: python实现单例的方式有很多种,这里就先讲四种。 阅读全文
posted @ 2018-08-28 20:50 学一点也是好 阅读(177) 评论(0) 推荐(0)
摘要:一、异常处理 1.异常处理介绍: 异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常没有被应用程序处理,那么该异常就会被抛出来,程序执行随之停止 2.异常通常包含三个部分 1.traceback异常的追踪信息 2.异常的类型 3.异常的信息 3.为何使用异常处理: 避免程序因为异常而奔溃 阅读全文
posted @ 2018-08-27 20:35 学一点也是好 阅读(296) 评论(0) 推荐(0)
摘要:一、isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查obj是否是cls的对象 issubclass(sub,super)检查sub是否是super的派生类 二、反射 python面向对象中的反射:通过字符串的形式操作对象相 阅读全文
posted @ 2018-08-23 21:34 学一点也是好 阅读(240) 评论(0) 推荐(0)
摘要:一、绑定方法: 绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入 1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的,自动将对象当作第一个参数传入,类也可以调用,但是不会自动传值 2.绑定给类的方法:为类中定义的函数加上一个装饰器classmethod,自动将类当作第一个参数传入, 阅读全文
posted @ 2018-08-22 20:33 学一点也是好 阅读(189) 评论(0) 推荐(0)
摘要:一、组合 什么是组合? 就是一个类的属性 的类型 是另一个自定义类的 类型,也可以说是某一个对象拥有一个属性,该属性的值是另一个类的对象。 通过为某一个对象添加属性(这里的属性是另一个类的对象)的方式,间接将两个类关联整合,从而减少类与类之间的代码冗余 借用之前的代码进行改进: class Oldb 阅读全文
posted @ 2018-08-21 20:30 学一点也是好 阅读(292) 评论(0) 推荐(0)