自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 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 2315 2

原创 Msql too manyconnects 问题解决

最近在开发项目中,遇到too manyconnects,查找问题的过程。showfullprocesslist; 查看有什么程序在连接数据库 show status like 'Threads%';查看具体连接数和最大连接数上限 mysql> show status like 'Threads%'; +-------------------+-------+ | Variable_name | Value | +--------...

2020-11-19 14:27:40 273

原创 Mysql模糊查询 like

在 MySQL 中,LIKE关键字主要用于搜索匹配字段中的指定内容。其语法格式如下:[NOT] LIKE '字符串'其中:NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。LIKE 关键字支持百分号“%”和下划线“_”通配符。通配符是一种特殊语句,主要用来模糊查询。当不知道真正字符或者懒得输入完整名称时,可以使用通配符来代替一个或多个真正的字符。带有“%”通配符的查询“...

2020-11-18 17:24:20 354

转载 Python单例模式

单例模式单例模式就是确保一个类只有一个实例.当你希望整个系统中,某个类只有一个实例时,单例模式就派上了用场.比如,某个服务器的配置信息存在在一个文件中,客户端通过AppConfig类来读取配置文件的信息.如果程序的运行的过程中,很多地方都会用到配置文件信息,则就需要创建很多的AppConfig实例,这样就导致内存中有很多AppConfig对象的实例,造成资源的浪费.其实这个时候AppConfig我们希望它只有一份,就可以使用单例模式.实现单例模式的几种方法1. 使用模块其实,python的模

2020-09-18 09:58:45 199

转载 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 368

原创 SQLAchemy 多条件模糊查询

SQLAchemy 多条件模糊查询 devices = db.session.query(DeviceInfo).filter( DeviceInfo.device_type.like(f'%{device_type}%' if device_type else '%%'), DeviceInfo.device_id.like(f'%{device_id}%' if device_id else '%%'), .

2020-09-07 11:23:11 462

原创 SQLAchemy 链接查询 inner join left join

class DevType(db.Model): """ 设备种类 """ __tablename__ = 'dev_type' type_id = db.Column('type_id', db.Integer, primary_key=True, doc='id') type_name = db.Column('type_name', db.String, doc='名字') type_num = db.Column('type_num', d.

2020-08-19 12:08:19 228

原创 MQTT协议相关

MQTT是基于TCP协议的应用层协议协议定位:TCP是面向连接,可靠的,基于字节流的传输层的通信协议 MQTT是在低带宽,高延迟,不可靠的网络下进行数据相对可靠的传输的应用层协议 HTTP(超文本传输协议),基于TCP/IP通信协议来传输数据,端口是80传输单位:TCP传输的是packet MQTT传输的是消息,订阅,发布。传输质量:TCP是可靠的字节流传输服务 MQTT三种消息发布的QOS服务等级,0, 1, 2;简化了消息发送不同服务质量的工作量MQTT协议特点:基于t

2020-08-11 10:44:28 114

原创 SQLAchemy NULL 值处理

Nullis_(None)非Nullisnot(None)

2020-08-10 09:37:06 194

转载 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 1507

原创 MySQL存储引擎

MySQL存储引擎

2020-05-18 09:27:10 97

原创 Python-WebSocket、Socket.IO

WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议(由HTML5定义)。在WebSocket API中 浏览器和服务器只需要完成一次握手(指建立TCP连接(三次握手--HTTP报文数据)后再传输一次握手数据--ws报文数据数据),两者之间就可以直接创建持久性的连接,并且进行双向数据传输。其他特点包括:建立在 TCP 协议之上,服务器端的实现比较容易,通过 HTTP/1.1 协议的101状态码进行握手。数据格式比较轻量,更好的压缩效果,性能开销小,通信高效。

2020-05-18 09:15:35 810

原创 Redis 高可用-哨兵

Redis 哨兵为了保证redis最大程度上能够使用高可用,redis提供了主从同步+Sentinel哨兵机制;主从同步slaveof host port # 或者在配置文件中进行配置redis主从只有一个master,一般和哨兵机制一起使用Sentinel哨兵机制redis安装后,会自带sentinel哨兵程序–sentinel.conf,是一个运行在特殊模式下的Redis服务器;bind 127.0.0.1 # 哨兵运行的IP地址port 26380 # 哨兵运行的

2020-05-15 14:53:32 106

原创 Redis 持久化

Redis 持久化虽然redis是内存型数据库,但是redis也可以将数据写入磁盘中,在停机或宕机后,再次启动redis时,可以将磁盘中的备份数据加载到内存中恢复使用;RDB 快照持久化将内存中的数据写入磁盘进行持久化;redis会创建子进程来执行。redis默认开启了快照持久化机制。快照持久化时间:定期触发(redis.conf中配置) # save # # Will save the DB if both the given number of seconds an

2020-05-15 11:40:17 136

原创 Redis 事务

Redis 事务Redis提供了一定的事务支持,可以保证一组操作原子执行不被打断,但是如果执行中出现错误,事务不能回滚,Redis未提供回滚的支持,rollback。multi 开启事务exec 执行事务127.0.0.1:6379> multiOK127.0.0.1:6379> set a 100QUEUED127.0.0.1:6379> set b 200QUEUED127.0.0.1:6379> get aQUEUED127.0.0.1:637

2020-05-15 11:04:28 85

原创 MySQL优化

SQL查询的优化避免全表扫描,在where、order by涉及的字段上建立索引; 避免使用select * 操作,劲量明确所要查询的字段;SQL语句尽量大写,数据库在解析SQL语句时,通常会先转换成大写再执行 ,如: SELECT name FROM t WHERE id=1尽量避免在where字句中使用 != 或者<>,否则MySQL会放弃索引,全表扫描;MySQL只有在以下操作符时索引才生效:<、<=、=、>、>=、BETWEEN、IN、以及某些

2020-05-14 15:47:56 100

原创 MySQL数据库的复制集,分布式

复制集(Replication) 数据库中数据相同,起到备份作用 高可用 High Available HA 分布式(Distribution) 数据库中数据不同,共同组成完整的数据集合 通常每个节点被称为一个分片(shard) 高吞吐 High Throughput 复制集与分布式可以单独使用,也可以组合使用(即每个分片都组建一个复制集) 关于主(Master)从(Slave) 这个概念是从使用的角度来阐述问题的 主节点 -> 表示程序在这个节点上最先更新数据

2020-05-13 15:09:09 254

原创 关系型数据库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 190

原创 git for windows配置SSH key

配置SSH key 1 打开Git Bash查看电脑上是否已经存在SSH密钥 为重新安装,之前的配置已被删除如图显示即为初次安装的的显示 2 创建SSH key ssh-keygen -t rsa -C "your_email@youremail.com" 执行这条命令会如上图提示文件保存路径,可以直接按Enter,然后提示输入密码,输入两次(可以不输直接两次...

2020-04-23 09:53:30 2085

原创 Python异步处理async asyncio await

异步处理:官方文档asyncio从调度程序的任务队列中挑选任务,该调度程序以交叉的形式执行这些任务,我们并不能保证任务将以某种顺序去执行,因为执行顺序取决于队列中的一项任务是否愿意将CPU处理时间让位给另一项任务。异步任务通常通过多任务协作处理的方式来实现,由于执行时间和顺序的不确定,因此需要通过回调式编程或者future对象来获取任务执行的结果。Python 3通过asyncio模块和a...

2020-04-16 17:52:51 345

转载 Python并发编程----多进程

多进程:多进程可以有效的解决GIL的问题,实现多进程主要的类是Process,其他辅助的类跟threading模块中的类似,进程间共享数据可以使用管道、套接字等,在multiprocessing模块中有一个Queue类,它基于管道和锁机制提供了多个进程共享的队列。下面是官方文档上关于多进程和进程池的一个示例。"""多进程和进程池的使用多线程因为GIL的存在不能够发挥CPU的多核特性...

2020-04-16 17:04:23 117

转载 简述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 236

原创 MySQL乐观锁,悲观锁以及实现

悲观锁当事务在操作数据时把这部分数据进行锁定,直到操作完毕后再解锁,其他事务操作才可操作该部分数据。这将防止其他进程读取或修改表中的数据。当事务提交的时候会释放事务过程的锁。实现:一般使用 select ...for update 对所选择的数据进行加锁处理,select * from account where name=”Max”for update乐观锁在数据更新...

2020-04-16 15:32:01 129

原创 MySQ索引

索引索引(index),帮助MySQL高效获取数据的数据结构,本质是数据结构,排好序的快速查找数据结构,一般指B-Tree索引 ;一般以索引文件的形式存储在磁盘。提高数据的检索效率,降低数据的IO成本降低数据的排序成本,降低CPU的消耗避免全表扫描降低了更新表的速度比如:INSERT,UPDATE,DELETE;更新表是,MySQL不仅要保存数据,还要保存索引文件...

2020-04-16 15:05:47 114

原创 MySQL事务

事务存储引擎SHOW ENGINES;主要:InnoDB,MyISAM,MEMORY;InnoDB支持事务,MyISAM,MEMORY不支持事务事务定义由一个或者多个SQL语句组成的一个独立的执行单元,其中每个SQL语句相互依赖事务的SQL语句要么全部执行成功,如果某条SQL语句执行失败或者产生错误,整个单元将回滚,所有数据回到事务执行开始之前事务特性(ACID)原...

2020-04-16 11:30:15 389

原创 Python命名空间、作用域、局部变量、全局变量、闭包、装饰器

命名空间命名空间提供了在项目中避免冲突的一种方法。各个命名空间是独立的,没有任何关系,所以一个命名空间中不能有重名,但不同的命名空间是可以重名没有影响。内置命名空间:Python内置的名称,比如函数名abs,char,input,print全局命名空间:模块中定义的名称,记录了模块中变量,包括函数,类,其他导入的模块以及模块定义的变量,常量局部命名空间:函数中定义的名称,记录了函数的变量...

2020-04-09 18:26:15 247

原创 Pythond迭代、可迭代对象、迭代器、生成器

迭代可以通过for循环来遍历,这种遍历就是迭代可迭代对象凡是可以被for循环遍历的对象都是可迭代对象:Iterable、 list、dict、str等迭代器迭代器模式:惰性获取数据,按需计算下一个数据 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 可以使用isinstance()判断一个对象是否是Iterator对象 迭代器有两个基本的方法...

2020-04-09 11:01:37 141

原创 Django,cookies,session

1.生成cookieclass Index(View): def get(self, request): if request.user.is_authenticated: return redirect(reverse('persona:created')) res = render(request, 'index.html'...

2018-11-27 17:47:49 125

原创 python split(),maketrans(),translate()方法切割字符串

split切割字符串带参数,遇到连续参数会切割出空字符,这是一个小坑a = 'zzzz;;xxxx;'b = 'zzzz;'print('a',a.split(';'))print('b',b.split(';'))&gt;&gt;&gt;a ['zzzz', '', 'xxxx', ''] # 切割结果有''&gt;&gt;&gt;b ['zzzz', '']...

2018-11-19 10:44:46 411

转载 Python python-statemachine,有限状态机

StateMachine 的简单使用下载:python-statemachine 0.7.0

2018-11-15 15:24:08 1886

原创 Django 匿名用户AnonymousUser

源码from django.contrib.auth.models import AnonymousUserclass AnonymousUser:id = Nonepk = Noneusername = ''is_staff = Falseis_active = Falseis_superuser = False_groups = EmptyManager(...

2018-10-30 16:01:54 8572

转载 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 84

原创 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

原创 Django用mongoengine操作mongodb

 最近在写Django项目,使用的是mongodb,虽然Django不支持NoSQL,但是mongoengine可以帮助我们像ORM一样在Django项目中去操作mongodb推荐一个可视化工具  Robo 3T 这里贴几个我觉得比较有帮助的帖子,特别是在一对一,一对多的引用先放mongoengine的官方文档http://docs.mongoengine.org/tutorial...

2018-09-21 21:44:09 3411

原创 Django在同一个视图中要处理ajax请求遇到的一些坑

在写项目中遇到的一些ajax的坑,在这里做一下记录一、先放一个完整的前,后端示例 $("#bTinvite").click(function(){ data = $("#invitefriends").val();// alert(inviTtemail); $.ajax({ 'url':'/url/', ...

2018-09-21 21:25:19 1402

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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