python 学习笔记 (四)
一.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