用pymysql模块连接mysql时遇到一点问题,众所周知,最常见的连接数据库方式有无外乎以下2种:
连接方式一:
为了程序的简洁雅观,可以将connect()中的参数定义在一个字典类型的对象config中,然后将这个字典对象传进connect方法中,如下图所示:
连接方式二:
但是,出于好奇,查看connect()方法的官方帮助文档时,发现connect()的参数有两个:args和kwargs,分别以不定长参数形式呈现,然后我就纳闷了:这个args不定长参数是用来干嘛的???
经过几番查询和调试,发现args的作用是,补充kwargs中连接数据库时用到的多种参数,如下图所示:
连接方式三:
释疑:从上图代码可以看出,如果config字典中只给出了主机名、数据库账户名,那么显然是连接不上数据库的,这时候我们如果不想在config中增加其他参数的话,可以将这些参数写进另一个字典类型的config1对象中,然后按照元组形式的不定长参数用法,将config和config1传到connect()中去,这样connect就获取了一个完整的数据库连接配置文件,从而成功建立起连接,如下图所示:(mysql依然可以正常连接)
总结:
- 推荐第二种连接方式,简洁优雅;
- 在pymysql中,这三种数据库连接对象是等价的:connect=Connection=Connect,建议使用connect;