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

开发环境: 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之MySQL连接驱动选择

尽管现在 NoSQL 数据库大放异彩,如MongoDB,但 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,学 Python 的都有必要学好一门数据库,不管是做数据分析,还是网络爬虫,Web 开发,都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,我们今天介绍下几种流行的MySQL驱动。 1、MySQL-python 也叫 MySQLdb,是 Python 连接 MyS......
Python 2019年05月10日 11:03:41

CentOS 6.x安装Python3.7.x

Python3.7已经出来很长时间了一直都没有时间去试用,之前一直都使用的是Python2.7的版本,最近因需要升级测试环境刚好就使用Python3.7(系统是Centos6.9)。 在安装使用之前有兴趣的同学可以去了解下新的特性: https://realpython.com/python37-new-features/#customization-of-module-attributes#tr......
Python 2019年05月09日 15:10:53

pip安装mysql-python模块报错

报错1: UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xd7 in position 9: ordinal not in range(128) 解决方法: import sys reload(sys) sys.setdefaultencoding( utf8 ) pip install mysql-python 报错2: _mysql.......
Python 2019年05月08日 09:47:59

Python sys.argv的用法

sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,因此要从第二个即sys.argv[1]开始取参数。 注意:参数是以空格分开的 创建一个名为argvs.py的文件,内容如下: import sys print( the first argv: ,sys.argv[0], \n ) # 显示第一个参数 print( the second argv: ,sys.a......
Python 2019年05月05日 18:15:51

Python线程互斥锁同步线程

由于每个线程互相独立,相互之间没有关系,如果要几个线程同时干一件事,因互相不关联,如果一个线程已经做过,另一个线程再去做,就重复了,很容易就混乱了。 问题产生的原因是因为没有控制多个线程对同一资源的访问,对数据造成破坏,使得线程运行的结果不可预期。这种现象称为“线程不安全”。而我们希望的是你拍一,我拍二,你拍三,我拍四,大家按一次拍下去,最后得出计算结果。 数据共享。当多个线程都修改某一个共享数据......
Python 2019年05月05日 15:03:24

Python中*args 和**kwargs(可变长参数)

当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。 def func(argc, *args): print argc: , argc for x in args: print args: , x func(1, two , 3) # *args可以当作可容纳多个变量组成的list # argc: 1 # args: two # a......
Python 2019年04月29日 11:05:04

Python str与repr的区别

在Python中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或 repr() 。 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式(如果没有等价的语法,则会发生SyntaxError 异常), 适合开发和调试阶段使用。 也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。虽然如此,很多情况下这......
Python 2019年04月29日 10:36:44

Python 反射

什么是反射? 通过类名获得类的实例对象 通过方法名得到方法,实现调用 通过字符串映射object对象的方法或者属性 反射方法 vim a.py class A: def __init__(self): self.name = zk def getName(self): return self.name 反射方法一: from a import A obj = globals()[ A ]() pr......
Python 2019年04月28日 16:43:21

Python 类组合和聚合

聚合(aggregation): 是整体与部分的关系。 通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。 #! /usr/bin/env python # -*- coding:utf8 -*- 聚合关系 class A(object): def __init__(se......
Python 2019年04月28日 16:15:47

Python 通过字符串调用函数

eval() def func(): print func name eval( func )() # func name eval() 函数通常用来执行一个字符串表达式,并返回表达式的值。在这里它将字符串转换成对应的函数。eval() 功能强大但是比较危险(eval is evil),不建议使用。 locals()和globals() def func(): print func name gl......
Python 2019年04月28日 15:56:04