![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
bNaii
这个作者很懒,什么都没留下…
展开
-
Python 日志 TimedRotatingFileHandler
Python日志TimedRotatingFileHandler通常不是我们需求的,所以进行了一些重写class MyTimedRotatingFileHandler(TimedRotatingFileHandler): """ 时间为切割点日志 """ def getFilesToDelete(self): """ Determine the files to delete when rolling over. Mor原创 2021-06-01 11:25:44 · 2318 阅读 · 2 评论 -
Python单例模式
单例模式单例模式就是确保一个类只有一个实例.当你希望整个系统中,某个类只有一个实例时,单例模式就派上了用场.比如,某个服务器的配置信息存在在一个文件中,客户端通过AppConfig类来读取配置文件的信息.如果程序的运行的过程中,很多地方都会用到配置文件信息,则就需要创建很多的AppConfig实例,这样就导致内存中有很多AppConfig对象的实例,造成资源的浪费.其实这个时候AppConfig我们希望它只有一份,就可以使用单例模式.实现单例模式的几种方法1. 使用模块其实,python的模转载 2020-09-18 09:58:45 · 199 阅读 · 0 评论 -
Nginx-WSGI-uWSGI-gunicorn
一、介绍WSGI(Web Server Gateway Interface),翻译为Python web服务器网关接口,即Python的Web应用程序(如Flask)和Web服务器(如Nginx)之间的一种通信协议。也就是说,如果让你的Web应用在任何服务器上运行,就必须遵循这个协议。那么实现WSGI协议的web服务器有哪些呢?就比如uWSGI与gunicorn。两者都可以作为Web服务器。可能你在许多地方看到的都是采用Nginx + uWSGI(或gunicorn)的部署方式。实际上,直接通过uW转载 2020-09-10 09:46:58 · 372 阅读 · 0 评论 -
SQLAchemy NULL 值处理
Nullis_(None)非Nullisnot(None)原创 2020-08-10 09:37:06 · 198 阅读 · 0 评论 -
python文件操作--Pathlib
之前如果要使用 python 操作文件路径,我总是会条件反射导入 os.path。 而现在,我会更加喜欢用新式的 pathlib, 虽然用得还是没有 os.path 熟练,但是以后会坚持使用。pathlib 库从 python3.4 开始,到 python3.6 已经比较成熟。如果你的新项目可以直接用 3.6 以上,建议用 pathlib。相比于老式的 os.path 有几个优势:老的路径操作函数管理比较混乱,有的是导入 os, 有的又是在 os.path 当中,而新的用法统一可以用 pathlib转载 2020-07-28 16:55:12 · 1510 阅读 · 0 评论 -
Python-WebSocket、Socket.IO
WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议(由HTML5定义)。在WebSocket API中 浏览器和服务器只需要完成一次握手(指建立TCP连接(三次握手--HTTP报文数据)后再传输一次握手数据--ws报文数据数据),两者之间就可以直接创建持久性的连接,并且进行双向数据传输。其他特点包括:建立在 TCP 协议之上,服务器端的实现比较容易,通过 HTTP/1.1 协议的101状态码进行握手。数据格式比较轻量,更好的压缩效果,性能开销小,通信高效。原创 2020-05-18 09:15:35 · 814 阅读 · 0 评论 -
关系型数据库Python-ORM
ORM-对象关系映射通过ORM将编程语言的对象模型和数据库的关系模型建立映射,让编程语言代替SQL对数据库进行操作;ORM使用对象对数据库的操作进行的封装,在开发的过程中,可以不使用SQL,值需要面向对象编程,与数据对象直接交互,不用关系底层数据库。Python常用的ORM有SQLAlchemy,Django's ORM数据库的表(table) -->类(class) 记录(record,行数据)--> 对象(object) 字段(field)--> 对象的属性(attrib.原创 2020-05-12 17:05:17 · 191 阅读 · 0 评论 -
Python异步处理async asyncio await
异步处理:官方文档asyncio从调度程序的任务队列中挑选任务,该调度程序以交叉的形式执行这些任务,我们并不能保证任务将以某种顺序去执行,因为执行顺序取决于队列中的一项任务是否愿意将CPU处理时间让位给另一项任务。异步任务通常通过多任务协作处理的方式来实现,由于执行时间和顺序的不确定,因此需要通过回调式编程或者future对象来获取任务执行的结果。Python 3通过asyncio模块和a...原创 2020-04-16 17:52:51 · 350 阅读 · 0 评论 -
简述Python并发编程----多线程
Python中实现并发编程的三种方案:多线程、多进程和异步I/O。并发编程的好处在于可以提升程序的执行效率以及改善用户体验;坏处在于并发的程序不容易开发和调试,同时对其他程序来说它并不友好。1. 提升执行性能 - 让程序中没有因果关系的部分可以并发的执行2. 改善用户体验 - 让耗时间的操作不会造成程序的假死进程 - 操作系统分配内存的基本单位 - 一个进程可以包含一个或多个线程线程 ...转载 2020-04-16 17:01:07 · 408 阅读 · 1 评论 -
简述Python 内存管理,垃圾回收机制
Python使用了自动化内存管理,这种管理机制以引用计数为基础,同时也引入了标记-清除和分代收集两种机制为辅的策略。引用计数导致引用计数+1的情况:对象被创建,例如a = 23 对象被引用,例如b = a 对象被作为参数,传入到一个函数中,例如f(a) 对象作为一个元素,存储在容器中,例如list1 = [a, a]导致引用计数-1的情况:对象的别名被显式销毁,例如del ...转载 2020-04-16 16:47:04 · 238 阅读 · 0 评论 -
Python命名空间、作用域、局部变量、全局变量、闭包、装饰器
命名空间命名空间提供了在项目中避免冲突的一种方法。各个命名空间是独立的,没有任何关系,所以一个命名空间中不能有重名,但不同的命名空间是可以重名没有影响。内置命名空间:Python内置的名称,比如函数名abs,char,input,print全局命名空间:模块中定义的名称,记录了模块中变量,包括函数,类,其他导入的模块以及模块定义的变量,常量局部命名空间:函数中定义的名称,记录了函数的变量...原创 2020-04-09 18:26:15 · 247 阅读 · 0 评论 -
Pythond迭代、可迭代对象、迭代器、生成器
迭代可以通过for循环来遍历,这种遍历就是迭代可迭代对象凡是可以被for循环遍历的对象都是可迭代对象:Iterable、 list、dict、str等迭代器迭代器模式:惰性获取数据,按需计算下一个数据 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 可以使用isinstance()判断一个对象是否是Iterator对象 迭代器有两个基本的方法...原创 2020-04-09 11:01:37 · 141 阅读 · 0 评论 -
python基础----特性(property)、静态方法(staticmethod)、类方法(classmethod)、__str__的用法
一、特性(property)1 什么是特性propertyproperty是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 import math class Circle: def __init__(self,radius): #圆的半径radius self.radius=radius @property ...转载 2018-10-24 16:47:58 · 85 阅读 · 0 评论 -
Python python-statemachine,有限状态机
StateMachine 的简单使用下载:python-statemachine 0.7.0转载 2018-11-15 15:24:08 · 1888 阅读 · 0 评论 -
python split(),maketrans(),translate()方法切割字符串
split切割字符串带参数,遇到连续参数会切割出空字符,这是一个小坑a = 'zzzz;;xxxx;'b = 'zzzz;'print('a',a.split(';'))print('b',b.split(';'))>>>a ['zzzz', '', 'xxxx', ''] # 切割结果有''>>>b ['zzzz', '']...原创 2018-11-19 10:44:46 · 411 阅读 · 0 评论 -
Python处理时间问题date - datetime - str
简单的运用from datetime import datetime, timedelta#当前日期时间now = datetime.today() #2018-10-11 23:11:22.501561#now = datetime.now() #2018-10-11 23:11:22.501561...原创 2018-09-21 22:10:27 · 346 阅读 · 0 评论