运维平台架构设计及开发(持续更新中...)

开发环境: Python 2.x GoLang 1.6 Django 1.6 Bootstrap 3.0 JQuery1.8 架构: 模块介绍: Agent:使用GoLang开发,主要收集主机信息、执行下发任务、主机状态上报、服务检测等 Master:使用GoLang开发,接收Agent上报的信息,存储到MySQL Dashboard:使用Python Django开发,前台展示及管理。前端使用B......
Python 2019年01月26日 17:15:58

Python通过ssh代理连接MySQL

#!/usr/bin/env python # -*- coding:utf-8 -*- import sshtunnel import pymysql db_host = 127.0.0.1 db_user = root db_password = 123123 db_port = 3306 db_database = test ssh_keyFile = /Users/test/.ssh/id......
Python 2022年08月01日 17:44:19

Python协程之Gevent

Gevent是一个基于Greenlet实现的网络库,通过Greenlet实现协程。 基本思想是一个Greenlet就认为是一个协程,当一个Greenlet遇到IO操作的时候,比如:访问网络就会自动切换到其他的Greenlet等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为我们自动切换协程就保证总有Greenlet在运行,而不是等待I......
Python 2022年05月19日 10:21:12

浅析Python协程

我们在学习Python时候,协程( Coroutine )可能是最让初学者困惑的知识点之一了,它也是Python中实现并发编程的一种重要方式。Python中可以使用多线程和多进程来实现并发,对于计算型任务由于GIL的存在我们通常使用多进程来实现,而对于IO型任务我们可以通过线程调度来让线程在执行IO任务时让出GIL,从而实现表面上的并发。其实对于IO型任务我们还有一种选择就是协程,协程是运行在单线......
Python 2022年05月19日 10:08:29

Python中赋值、浅拷贝与深拷贝

介绍 Python中关于对象复制有三种类型 赋值 浅拷贝 深拷贝 赋值 Python中对象的赋值就是简单的对象引用,如下: a = [1,2,3, hello ,[ python , C++ ]] b = a 这种情况下,b和a是一样的,它们指向同一片内存,b不过是a的别名,是引用。 可以使用 b is a 来判断,返回true,表明他们地址相同,内容相同。也可使用id(x) for x in a......
Python 2020年08月05日 10:28:27

Python Celery队列、定时任务

介绍 Celery (开源)是一个 Python 编写的简单、灵活、可靠的用来处理大量信息的异步的分布式任务队列,主要用于实时处理和任务调度, 同时提供操作和维护分布式系统所需的工具。Celery可以支持多台不同的计算机执行不同的任务或者相同的任务。 组件 Brokers Celery 有生产者和消费者的角色,brokers 是生产者和消费者存放/拿取产品的地方(队列),常见的 brokers 有......
Python 2020年01月06日 14:31:27

Python 新式类和经典类区别及类特性

1、新式类和经典类对比 声明方式 , Python3.x取消了经典类,默认都是新式类,并且不必显式的继承object(写法上不在乎加不加) class A: # 经典类 def __init__(self): pass class B(object): # 新式类 def __init__(self): pass # 新式类声明的时候需要继承内置object对象(或者内置类型如,list、dict......
Python 2019年10月25日 16:00:15

Python 推导式、迭代器、生成器浅析

推导式是一个或多个迭代器快速简洁创建数据结构的一种方法。 列表推导式 number = [i for i in range(1, 10)] # 简单形式 number = [i for i in range(1, 10) if i %2 == 1] # 加上条件判断 number = [(k, v) for k in range(1, 10) for v in range(2, 20)] # 多f......
Python 2019年10月25日 15:09:45

Python 内嵌函数、闭包、装饰器浅析

Python 内嵌函数(返回式函数)、闭包、装饰器,共同之处都是以函数作为参数传递到函数,不同之处在于调用和返回的的区别。 内部函数 def func(num): def add(num): # 传入外部参数 return num + 1 return add(num) # 返回内嵌函数 func(1) 2 内嵌函数引用外部传入参数,外部函数显示的返回是内部函数add的调用, 当需要在函数内部多次......
Python 2019年10月25日 12:36:57

Python 之kafka Consumer和Producer

Topic 和 Partition Topic 在逻辑上可以被认为是一个 queue,每条消费都必须指定它的 Topic,可以简单理解为必须指明把这条消息放进哪个queue 里。为了使得 Kafka 的吞吐率可以线性提高,物理上把 Topic 分成一个或多个 Partition,每个 Partition 在物理上对应一个文件夹,该文件夹下存储这个 Partition 的所有消息和索引文件。若创建 ......
Linux服务,Python 2019年06月10日 15:13:15

Python中的 if __name__ == '__main__' 是什么

我们经常在Python代码中看到 if __name__ == __main__ :这代表什么呢? Python中模块即对象,并且所有的模块都有一个内置属性 __name__,一个模块的__name__的值取决于您如何应用模块,如果 import一个模块,那么模块__name__ 的值通常为模块文件名(不带路径或者文件扩展名),但也可以像一个标准的程序那样直接运行模块,在这种情况下__name__......
Python 2019年05月21日 17:15:36