11 2019 档案
摘要:Python中产生随机数 一.Python自带的random库 1.参生n--m范围内的一个随机数: random.randint(n,m) 2.产生0到1之间的浮点数: random.random() 3.产生n m之间的浮点数: random.uniform(1.1,5.4) 4.产生从n m间
阅读全文
摘要:编程中什么是「Context(上下文)」? 每一段程序都有很多外部变量。只有像Add这种简单的函数才是没有外部变量的。一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行。你为了使他们运行,就要给所有的外部变量一个一个写一些值进去。这些值的集合就叫上下文。 譬如说在C++的lambda表达是
阅读全文
摘要:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解 lambda是Python编程语言中使用频率较高的一个关键字。那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多。这里,我们通过阅读各方资料,总结了关于Python中的lambd
阅读全文
摘要:Python SocketServer模块 SocketServer功能:实现并发处理,就是将socket在封装,使得遍的更简单。 类型: #TCPserver:TCP的socketserver。 class socketserver.TCPServer(server_address,Request
阅读全文
摘要:网络爬虫urllib:request之urlopen 网络爬虫简介 网络爬虫简介 定义:按照一定规则,自动抓取万维网信息的程序或脚本。 两大特征: 能按程序员要求下载数据或者内容 能自动在网络上流窜(从一个网页跳转到另一个网页) 两大步骤 下载网页 提取正确的信息 根据一定规则自动跳转其它撤销负面上
阅读全文
摘要:asyncio与gevent并发性能测试 在对网站进行扫描或者暴破时需要对网站进行高并发操作,然而requests+concurrent多线程性能上不太理想,了解到python用得比较多的并发库有asyncio和gevent,于是就有了如下测试。 0x00 协程 asyncio和gevent都是基于
阅读全文
摘要:关于shutdown 和closesocket的彻底理解! shutdown 和closesocket 来,咱们彻底的来讨论一下这个shutdown 和closesocket 从函数调用上来分析(msdn):一旦完成了套接字的连接,应当将套接字关闭,并且释放其套接字句柄所占用的所有资源。真正释放一个
阅读全文
摘要:协程--gevent模块(单线程高并发) 先恶补一下知识点,上节回顾 上下文切换:当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行。这种切换称为“上下文切换”(“context switch”)
阅读全文
摘要:Python中的logging模块就这么用 1、日志日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICALDEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行 WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问
阅读全文
摘要:socket服务端开发之测试使用threading和gevent框架 话题是测试下多线程和gevent在socket服务端的小包表现能力,测试的方法不太严谨,也没有用event loop + pool池的概念。不管是gevent和threading有pool的情况下,确实很省资源,但是固定的pool
阅读全文
摘要:python下multiprocessing和gevent的组合使用 对于有些人来说Gevent和multiprocessing组合在一起使用算是个又高大上又奇葩的工作模式. Python的多线程受制于GIL全局锁的特性,Gevent身为协程也是线程的一种,只是io调度上自己说了算而已。 那么如何使
阅读全文
摘要:Python之23种设计模式 Python七大原则,24种设计模式 二十三种设计模式及其python实现 常用设计模式Python实现及其python实现
阅读全文
摘要:zxq547 zxq547 python定义接口继承类invalid syntax解决办法 1 2 3 4 5 6 7 class s_all(metaclass=abc.ABCMeta): #python2.7用此方法定义接口继承 # __metaclass__ = abc.ABCMeta @ab
阅读全文
摘要:pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思 pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思 pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思 pycharm 中自动补全代码提示前符号 p,m ,c,v, f
阅读全文
摘要:gevent gevent基于协程的网络库,基于libev的快速的事件循环,基于greenlet的轻量级执行单元,重用了Python标准库中的概念,支持socket、ssl、三方库通过打猴子补丁的形式来提供同步方式编写代码的异步支持,dns解析通过线程池或c-ares,内置的tcp udp http
阅读全文
摘要:python2,socket多进程的错误pickle.PicklingError: Can't pickle python2,socket多进程的错误pickle.PicklingError: Can't pickle python2,socket多进程的错误pickle.PicklingError
阅读全文
摘要:图解MySQL 内连接、外连接、左连接、右连接、全连接……太多了 用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接、全(外)连接)。 MySQL版本:Server version:
阅读全文
摘要:mysql中的NULL的判断 mysql> delete from `zhangchao` where x='NULL'; Query OK, 0 rows affected (0.00 sec) mysql> delete from `zhangchao` where x=NULL; Query
阅读全文
摘要:一、重做日志(redo log) 作用: 确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。 二、回滚日志(undo log) 作用: 保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多
阅读全文
摘要:MySQL中表的复制以及大型数据表的备份教程 这篇文章主要介绍了MySQL中表的复制以及大型数据表的备份教程,其中大表备份是采用添加触发器增量备份的方法,需要的朋友可以参考下 表复制 mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能
阅读全文
摘要:SQL语句多个字段排序 写在前面的话: 本次迭代,分配的任务有点多啊,好在本妈妈朝10晚6的加班加点。其中一项就是列表展示啊, 展示就展示呗,还要排序。排序也可以,测试时排序字段值为啥都一样啊。结果点一下一个顺序。 就想在第一个字段排序完,是不是可以用第二个字段排序 要求:降序排列 select *
阅读全文
摘要:MySQL 数据类型(float)的注意事项 摘要: 今天左哥问起一个float浮点数类型的问题,这个类型用的不多,所以也不太了解,现在打算测试下。知识点: float:浮点数,单精度,占4字节。测试 从上面看出:默认的float类型都只能存6个数字(包括小数点前后的位数),整数超过6位就被科学计数
阅读全文
摘要:MySQL VARCHAR字段最大长度到底是多少 MySQL VARCHAR字段最大长度到底是多少 MySQL VARCHAR字段最大长度到底是多少 MySQL VARCHAR字段最大长度到底是多少 varchar(n),n表示什么? MySQL5.0.3之前varchar(n)这里的n表示字节数
阅读全文
摘要:设计-Int(4)和Int(11)谁更美 【缘起】 大家平时在进行数据库设计的时候,如果遇到需要存储整数类型的数据的时候,通常会优先使用Int这个整数类型,在处理20亿级别的正负数值存储上,Int类型是完全能够满足日常需求的了。 但是在进行数据库建表语句书写的时候,大家经常会见到Int类型的后面会带
阅读全文
摘要:MySQL数据类型(最大值 和 最小值) 1、整型 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~255)。 int(m)里的m是表示SELECT查询结果集中的显示宽度,不知道这个m有什么用。 int 占10位,存不了手机号(11位) 2、浮点型
阅读全文
摘要:运维过程中,很多时候,业务应用会出现假死的情况,应用进程正常,但是无法提供服务,此时监控进程没有任何意义,就需要监控接口 接口监控的方法很多,可以用链路监控,可以写脚本进行监控 由于监控整体采用的是prometheus,所以这里就直接用blackbox_exporter来做接口的监控 blackbo
阅读全文
摘要:spring的事务是什么?与数据库的事务是否一样 先说一下什么是事务,事务:是对数据库的一些列操作。 之前一直觉得事务只针对于数据库当中,5种隔离级别,7种传播行为,后来才发现这是针对Spring的,对数据库来说隔离级别只有4种,Spring多了一个DEFAULT 这是一个PlatfromTrans
阅读全文
摘要:数据库锁 因为数据库要解决并发控制问题。在同一时刻,可能会有多个客户端对同一张表进行操作,比如有的在读取该行数据,其他的尝试去删除它。为了保证数据的一致性,数据库就要对这种并发操作进行控制,因此就有了锁的概念。 锁的分类 从对数据库操作的类型 读锁(共享锁):针对同一块数据,多个读操作可以同时进行而
阅读全文
摘要:关于数据库主键和外键(终于弄懂啦) 一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其
阅读全文
摘要:关于 TCP/IP,必知必会的10个问题 一、TCP/IP模型 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。 基于TCP/IP的参考模型将协议分成四个层次,
阅读全文
摘要:从本地事务到分布式事务到微服务下事务 一、传统本地事务 传统单服务器,单关系型数据库下事务比较简单,完全可用很简单的实现ACID,实际中我们实现一个业务时只需要:开启一个事务-操作数据库-提交/回滚这个事务,这样就完美的实现了一次事务操作,更简单点我们通常会通过spring集成事务直接指定在哪些服务
阅读全文
摘要:分布式锁一般有三种实现方式 1. 数据库乐观锁; 2. 基于ZooKeeper的分布式锁; 3. 基于Redis的分布式锁; 这里大概说一下三种方式的优缺点,数据库乐观锁优点是实现简单,只需要for update关键词就可以实现,缺点是无法满足高并发量以及数据库读写频繁的系统 ZooKeeper分布
阅读全文
摘要:Python3学习(二十七):python实现Redis的订阅与发布(sub-pub机制) 先介绍一下redis的pub/sub功能: Python3学习(二十七):python实现Redis的订阅与发布(sub-pub机制) 先介绍一下redis的pub/sub功能: Python3学习(二十七)
阅读全文
摘要:使用redis-py的两个类Redis和StrictRedis时遇到的坑 前言: 今天产品经理说,有几个队列排序的功能不能用了。对比了下以前的代码查到了一个原因,这个比较的坑,总结起来也是自己没好好看文档。 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,Str
阅读全文
摘要:深入理解Python异步编程(上) 前言 很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现各种古怪的问题难以解决。而且使用了异步框架的部分同学,由于用法不对,感觉
阅读全文
摘要:socket编程中主动关闭VS被动关闭 tcp中server,client都可能是主动关闭方或者被动关闭方,现阐述下两者之间的关系: 客户端(client) 服务器(server) close() Fin x -> 读通道关闭(close_wait) 写通道关闭 <- Ack x+1 读通道关闭(t
阅读全文
摘要:python socket 编程之三:长连接、短连接以及心跳 长连接:开启一个socket连接,收发完数据后,不立刻关闭连接,可以多次收发数据包。 短连接:开启一个socket连接,收发完数据后,立刻关闭连接。 心跳:长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态。 在python里
阅读全文
摘要:python之tcp自动重连 操作系统: CentOS 6.9_x64 python语言版本: 2.7.13 问题描述 现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。 测试服务器示例代码: https://github.com/mike-zhang/py
阅读全文
摘要:python mysql使用持久链接 python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能~ 思路: 1 python mysql 的cping 函数会校验链接的可用性,如果连接不可用将会产生异常 2 利用这一特性,构造一个连接丢失的循环,不断尝试连
阅读全文
摘要:multiprocessing.Pool报pickling error 现象 multiprocessing.Pool传递一个普通方法(不在class中定义的)时, 能正常工作. 但在class中定义的方法使用multiprocessing.Pool会报pickling error错误. 报错代码
阅读全文
摘要:Python 数据库的Connection、Cursor两大对象 pymysql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同。 Python 数据库图解流程 Connection、Cursor比喻 Connection()的参数列表 host,连接的数据库服务器主
阅读全文
摘要:python中的tcp示例详解 目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 tcp客户端 tcp服务器 tcp注意点 python中的tcp示例详解 目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 tcp客户端 tcp服务器 t
阅读全文
摘要:Python网络编程篇之select和epoll 1. select 原理 在多路复⽤的模型中, ⽐较常⽤的有select模型和epoll模型。 这两个都是系统接⼝, 由操作系统提供。 当然, Python的select模块进⾏了更⾼级的封装。 ⽹络通信被Unix系统抽象为⽂件的读写, 通常是⼀个设
阅读全文
摘要:select、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组(在linux中一切事物皆文件,块设备,socket连接等。),当select()返回后,该数组中就绪的文件描述符便会被内核修改标
阅读全文
摘要:python网络编程——IO多路复用之epoll python网络编程——IO多路复用之epoll 1、内核EPOLL模型讲解 此部分参考http://blog.csdn.net/mango_song/article/details/42643971博文并整理 首先我们来定义流的概念,一个流可以是文
阅读全文
摘要:python实现并发服务器实现方式(多线程/多进程/select/epoll) 并发服务器开发 并发服务器开发,使得一个服务器可以近乎同一时刻为多个客户端提供服务。实现并发的方式有多种,下面以多进程,多线程,IO多路复用等方式实现并发。这里使用网络编程中的TCP服务器和客户端通信为例子。 多进程并发
阅读全文
摘要:Python select 一、前言 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时变成readable 和writeable, 或者通信错误,select()使得同时监控多个
阅读全文
摘要:【python】详解事件驱动event实现 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出)。 1.脚本型:脚本型的程序包括最早的批处理文件以及使用Python做交易策略回测等等,这类程序的特点是在用户启动后会按照编程时设计好的步骤一步步运行,所有步骤运行完后自
阅读全文
摘要:day13学python 协程+事件驱动 协程+事件驱动 协程 (微线程)--用处多,重点 当调度切换时 靠寄存器上下文和栈保存 要使用时再调用(即可不会因io传输数据卡壳 从而耗时无法继续进行)实现并行 优缺点: 优点: 1 无需同线程上下文切换 消耗cpu 2 修改数据无需加锁(协程都是单线程串
阅读全文
摘要:MySQL、sqlalchemy、pymysql、mysqldb、DBAPI之间关系梳理(终于明白了) python3不再支持mysqldb 请用pymysql和mysql.connector 问题背景用Python处理MySQL数据库相关问题时,需要用到相关库,主要有pymysql、sqlalch
阅读全文
摘要:python之selectors模块 selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。 官方文档见:https://docs.python.org/3/library/selectors.html 以下是一
阅读全文
摘要:简单的异步任务工具——rq 的使用教程 rq是一个简单的,轻量级的异步任务工具。如果在网站中用户发起一个用时很久(大于2分钟)的请求,如果用同步的方式,服务器就会返回超时。这时候就需要用异步请求,用户发起请求后,服务端把作业扔给另一个进程去执行,然后立刻返回给用户,用户再通过轮询或者其他方式来获取作
阅读全文
摘要:ajax请求后台接口数据与返回值处理js写法 使用AJAX实现页面跳转 } ajax只接受最后返回的值,不会响应跳转请求更改浏览器地址栏地址转向的,你需要用js判断ajax的返回值是否要跳转,然后设置location.href实现跳转。 ajax异步请求struts的action只会返回所请求页面的
阅读全文
摘要:[Flask Security]当不能通过认证的时候制定跳转 Flask Security这个插件能对用户权限进行很好的控制。通过三个model实现:User,存放用户数据Role,存放角色数据User_Role.存放用户角色信息 user_datastore = SQLAlchemyUserDat
阅读全文
摘要:context_processor 上下文处理器 博客里面有三个地方用到了标签云:主页面,分类页面,博客详情页面,于是有了下面一段代码 # 主页面 @main.route("/") def index(): tags = Tag.query.all() # ...省略部分代码 return rend
阅读全文
摘要:https://www.jb51.net/article/144371.htm https://www.cnblogs.com/888888CN/p/9489345.html http://xiaorui.cc/2015/01/19/flask%E4%BD%BF%E7%94%A8token%E6%9
阅读全文
摘要:https://blog.csdn.net/wangshu_liang/article/details/86490137 https://blog.csdn.net/a1241314660/article/details/77995654 https://www.cnblogs.com/cwp-bg
阅读全文