一.Flask 1.1 什么是Flask Flask是由python实现的一个web微框架,可以使用Python语言快速实现一个网站或Web服务。 1.2.构造基本步骤 ste1.创建api对象; step2.生成resource子类,并定义该类的方法; step3.绑定路由。 二.ConfigParser ConfigParser 是用来读取配置文件的包。配置文件可以包含一个或多个节(section,中括号”[ ]“内包含的为section), 每个节可以有多个参数(键=值)。
注意:在python 3 中ConfigParser
模块名已更名为configparser。
例如,操作读取的配置文件内容为
[db]
db_host = 110.110.110.110
db_port = 69
huaweiqq_uid = 119119119
huaweiqq_pwd = 120120120
host_port = 69
[concurrent]
thread = 10
processor = 2
2.1 ConfigParser 初始化对象
使用ConfigParser 首选需要初始化实例,并读取配置文件:
import configparser
config = configparser.ConfigParser()
config.read("ini配置文件", encoding="utf-8")
2.2 获取所用的section节点
接着上面的初始化后,才能操作
xxxxx = config.sections()
获取ini文件内所有的section,以列表形式返回['db', 'concurrent'] 2.3 获取指定section 的options
即将配置文件某个section 内key 读取到列表中:
r = config.options("db")
获取指定sections下所有options ,以列表形式返回['host', 'port', 'huaweiqq_uid', 'huaweiqq_pwd'] 2.4 获取指点section下指点option的值
r = config.get("db", "db_host")
get(section, option) 获取section中option的值,返回为string类型.
本例的运行结果为110.110.110.110
2.5获取指点section的所用配置信息
r = config.items("db")
items(selections) 获取指定section下所有的键值对.
本例的运行结果为[('db_host', '110.110.110.110'), ('db_port', '69'), ('huaweiqq_uid', '119119119'), ('huaweiqq_pwd', '120120120), ('host_port', '69')] 2.6 检查section或option是否存在,bool值
config.has_section("section") 是否存在该section
config.has_option("section", "option") 是否存在该option
2.7 写入配置文件 添加/修改 add_section(section) 添加一个新的section set(section, option, value) 对section中的option进行设置,如果不存在该option 则会创建。需要调用write将内容写入配置文件 config.write(open(“ini配置文件”, “w”)) 删除 config.remove_section(“????“) 整个section下的所有内容都将删除;需要调用write将内容写入配置文件 config.write(open(“ini”, “w”)) 三.调用shell命令常用方法 3.1 使用os.popen()
该方法以文件的形式返回shell指令运行后的结果,然后再通过read()、readline() 或readlines()方法需要获取内容. 3.2 使用commands模块
有以下三个方法可以使用: (1)commands.getstatusoutput(cmd),其以字符串的形式返回的是输出结果和状态码,即(status,output)。
(2)commands.getoutput(cmd),返回cmd的输出结果。
(3)commands.getstatus(file),返回ls -l file的执行结果字符串,调用了getoutput,不建议使用此方法 3.3 subprocess模块
允许创建很多子进程,创建的时候能指定子进程和子进程的输入、输出、错误输出管道,执行后能获取输出结果和执行状态。 四.正则表达式匹配IP地址
从 string_ip 字符串变量中,提取处符合IP格式的数据。
string_ip = '????????????????????XXXXXXXXXXXXXXXXXX'
精确提取IP
result = re.findall(r"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", string_ip):
if result:
print result
else:
print "re cannot find ip
五.mysql-connector 驱动
有时候调试连接mysql的代码,会收到如下错误;
import MySQLdb
ModuleNotFoundError: No module named 'MySQLdb'
如果安装 MySQLdb 感觉麻烦,们可以使用 mysql-connector 来连接MySQL 数据库, mysql-connector 是 MySQL 官方提供的驱动器。
引入 import mysql.connector 。 mysql.connector 和 MySQLdb 很多方法相同,在一些简单的项目中,可能不需要修改代码或者修改很少。
去mysql的官网下载即可:https://dev.mysql.com/downloads/
下载网址 https://dev.mysql.com/downloads/connector/python/
下载到本地,yum localinstall 文件 ,安装即可。
连接数据的代码如下:
import mysql.connector
cnx = mysql.connector.connect(user='scott', password='password',
host='127.0.0.1',
database='employees',port =3306)
cnx.close()
6.文件读取
readlines()用法:读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存。
readline()用法:该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。
read() 用法:从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象。
参考学习
1.欢迎来到 Flask 的世界 — Flask 中文文档 (2.0.1)
https://dormousehole.readthedocs.io/en/latest/
2.Python 之ConfigParser模块
https://www.cnblogs.com/ming5218/p/7965973.html
3.Python调用shell命令常用方法
https://www.cnblogs.com/pengpp/p/9833349.html
4.Python中匹配IP的正则表达式
https://www.cnblogs.com/brogong/p/7929298.html
5.Python 正则表达式匹配IP地址
http://blog.sina.com.cn/s/blog_a1e9c7910102x4qp.html
6.Connecting to MySQL Using Connector/Python
https://dev.mysql.com/doc/connector-python/en/connector-python-example-connecting.html
原文创作:东山絮柳仔
原文链接:https://www.cnblogs.com/xuliuzai/p/15257543.html
文章列表
- 通过Python收集MySQL MHA 部署及运行状态信息的功能实现
- 通过Python将监控数据由influxdb写入到MySQL
- 通过Python实现生成excel并邮件发送的功能
- 通过Python实现对SQL Server 数据文件大小的监控告警
- 通过 Telegraf + InfluxDB + Grafana 快速搭建监控体系的详细步骤
- 迁移Report Server DataBase时遇到的坑
- 谨慎 mongodb 关于数字操作可能导致类型及精度变化
- 详解MongoDB中的多表关联查询$lookup
- 瞧一瞧!这儿实现了MongoDB的增量备份与还原含部署代码
- 时序数据库InfluxDB的基本语法
- 数据库服务器资源使用情况周报
- 数据库如何应对保障大促活动
- 我10亿级ES数据迁到MongoDB节省90%成本!转载
- 应用部署架构演进转载 -
- 学习ProxySQL参考到几个网址
- 名言小抄五
- 关于SQL Server 镜像数据库快照的创建及使用
- 关于SQL Server 数据库归档的一些思考和改进
- 关于MongoDB时间格式转换和时间段聚合统计的用法总结
- 以实现MongoDB副本集状态的监控为例,看Telegraf系统中Exec输入插件如何编写部署
- 一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析
- shell 操作钉钉机器人实现告警提醒
- python 学习笔记 四
- python 学习 三
- kapacitor的安装及部分常用命令
- TiDB 架构及设计实现
- TiDB 学习笔记一运维管理
- SQL Server 查看当前会话状态sp_WhoIsActive 转载 -
- SQL Server DB迁移工作List
- SQL Server CPU 利用率毛刺的分析定位与解决
- SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 1服务器视角
- Python发送的邮件设置收件人隐藏与显示
- MySQL索引设计需要考虑哪些因素?
- MySQL日志收集之Filebeat和Logstsh的一键安装配置ELK架构
- MySQL数据归档小工具推荐及优化mysql_archiver
- MySQL数据库规范 设计规范+开发规范+操作规范
- MySQL数据库Inception工具学习与测试 笔记
- MySQL常用命令汇总偏向运维管理
- MySQL在线DDL工具 ghost
- MySQL 学习笔记四
- MySQL 学习笔记三
- MySQL alter table时执行innobackupex全备再谈Seconds_Behind_Master
- MySQL MHA 运行状态监控
- MongoDB数据库的设计规范
- MongoDB实例重启失败探究大事务Redo导致
- MongoDB 那些事一文以蔽之
- MongoDB 中的加减乘除 - 运算
- MongoDB 中数据的替换方法实现 类Replace函数功能
- Linux常用命令总结二
- K8S基础学习