文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Mysql的简单配置
如果要你写一个配置文件解析器,你有什么思路呢?例如:
- 文件结构规定,规定参数和值、规定注释
- 读取配置文件的配置项,配置文件的参数、值的分隔符规定,注释规定等
- 删除配置文件的配置项
- 修改配置文件的配置项
- 添加配置文件的配置项
- 检查配置文件的配置项
- …
INI文件结构
配置文件是由小节组成的,每个小节都有一个 [section] 标头,加上多个由特定字符串 (默认为 = 或 😃 分隔的键/值条目。 默认情况下小节名对大小写敏感而键对大小写不敏感 。键和值开头和末尾的空格会被移除。 值可以被省略,在此情况下键/值分隔符也可以被省略。 值还可以跨越多行,只要其他行带有比值的第一行更深的缩进。 依据解析器的具体模式,空白行可能被视为多行值的组成部分也可能被忽略。
配置文件可以包含注释,要带有指定字符前缀 (默认为 # 或 😉。 注释可以单独出现于原本的空白行,并可使用缩进。
mysql的简单配置
[mysql]
设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306设置mysql的安装目录
basedir=D:\mysql-5.7.20-win32\mysql-5.7.20-win32
设置mysql数据库的数据的存放目录
datadir=D:\mysql-5.7.20-win32\mysql-5.7.20-win32\data
允许最大连接数
max_connections=200
服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
有两个小节,一个是mysql,一个是mysqld。这里使用#来代表后面的是注释,使用=来分隔参数和值。
举例
我们来对mysql的配置文件进行解析
import configparser
configfile = configparser.ConfigParser()
configfile.read(r"D:\mysql-5.7.20-win32\mysql-5.7.20-win32\my.ini")
print(configfile["mysql"]["default-character-set"])
结果
一般情况下,我们就是得到配置文件的配置项,然后对程序进行配置。当然,也可能在软件刚打开时,用户设置一下,写入配置文件。所以,增删改查是少不了的。接下来,详细看看。
[‘BOOLEAN_STATES’, ‘NONSPACECRE’, ‘OPTCRE’, ‘OPTCRE_NV’, ‘SECTCRE’, ‘add_section’, ‘clear’, ‘converters’, ‘default_section’, ‘defaults’, ‘get’, ‘getboolean’, ‘getfloat’, ‘getint’, ‘ha
s_option’, ‘has_section’, ‘items’, ‘keys’, ‘options’, ‘optionxform’, ‘pop’, ‘popitem’, ‘read’, ‘read_dict’, ‘read_file’, ‘read_string’, ‘readfp’, ‘remove_option’, ‘remove_section’, ‘s
ections’, ‘set’, ‘setdefault’, ‘update’, ‘values’, ‘write’]
读取配置
节点
获取所有节点
print(configfile.sections())
结果
[‘mysql’, ‘mysqld’]
获取指定节点下的所有键
print(configfile.options("mysqld"))
结果
[‘port’, ‘basedir’, ‘datadir’, ‘max_connections’, ‘character-set-server’, ‘default-storage-engine’]
键值对
获取指定节点下的所有键值对
print(configfile.items("mysqld"))
结果
[(‘port’, ‘3306’), (‘basedir’, ‘D:\mysql-5.7.20-win32\mysql-5.7.20-win32’), (‘datadir’, ‘D:\mysql-5.7.20-win32\mysql-5.7.20-win32\data’), (‘max_connections’, ‘200’), (‘character-
set-server’, ‘utf8’), (‘default-storage-engine’, ‘INNODB’)]
获取指定节点下键对应的值
mysqld = configfile["mysqld"]
print(mysqld.get("datadir"))
结果
D:\mysql-5.7.20-win32\mysql-5.7.20-win32\data
布尔值获取与设置
从前面可以看到,所有的键和值都认为是字符串。那么如何获取布尔值呢?
官方给了getboolean函数
在配置文件中,添加
#布尔值
bool = False
print(type(mysqld.getboolean("bool")), mysqld.getboolean("bool"))
结果
<class ‘bool’> False
配置解析器会将下列值视为 True
: '1'
, 'yes'
, 'true'
, 'on'
而将下列值视为 False
: '0'
, 'no'
, 'false'
, 'off'
。
有的时候,可能配置简单,懒得写配置功能,直接让用户来修改配置文件,通过注释来提示用户。但是off、false等对非计算机专业用户来说有些难。我们可以修改一下布尔值的判定
配置文件中添加:
是否开启命运之门? 打开或关闭
Door of Destiny = 打开
代码添加:
# 设置布尔值
configfile.BOOLEAN_STATES["打开"] = True
configfile.BOOLEAN_STATES["关闭"] = False
print(mysqld.get("Door of Destiny"))
print(type(mysqld.getboolean("Door of Destiny")), mysqld.getboolean("Door of Destiny"))
结果:
打开
<class ‘bool’> True
对于float、int,可以使用getfloat和getint,也可以自己使用int、float进行转换
检查配置
在查看、添加、删除、修改之前,我们都应该检查一下是否存在。
节点
检查节点是否存在
print(configfile.has_section("mysql"))
print(configfile.has_section("yoursql"))
结果
True
False
键值对
检查指定节点的键是否存在
print(configfile.has_option("mysqld", "default-character-set"))
print(configfile.has_option("mysqld", "port"))
结果
False
True
添加配置
节点
添加节点
configfile.add_section("delete")
configfile.add_section("info")
键值对
向指定节点中添加键值对
configfile.set("info", "author", "lady_killer9")
configfile.set("info", "time", "now")
删除配置
节点
删除节点
configfile.remove_section("delete")
键值对
删除指定节点的键值对
configfile.remove_option("info", "time")
修改配置
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!