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

 

posted @ 2021-09-28 23:48  东山絮柳仔  阅读(108)  评论(0编辑  收藏  举报