pymysql中connect()方法传参的问题思考

用pymysql模块连接mysql时遇到一点问题,众所周知,最常见的连接数据库方式有无外乎以下2种:

连接方式一:

连接方式(一).jpg


为了程序的简洁雅观,可以将connect()中的参数定义在一个字典类型的对象config中,然后将这个字典对象传进connect方法中,如下图所示:

连接方式二:

pymysql中connect()方法传参的问题思考_第1张图片
连接方式(二).jpg


但是,出于好奇,查看connect()方法的官方帮助文档时,发现connect()的参数有两个:argskwargs,分别以不定长参数形式呈现,然后我就纳闷了:这个args不定长参数是用来干嘛的???

pymysql中connect()方法传参的问题思考_第2张图片
connect官方文档.jpg

经过几番查询和调试,发现args的作用是,补充kwargs中连接数据库时用到的多种参数,如下图所示:

连接方式三:

pymysql中connect()方法传参的问题思考_第3张图片
连接方式(三).jpg

释疑:从上图代码可以看出,如果config字典中只给出了主机名、数据库账户名,那么显然是连接不上数据库的,这时候我们如果不想在config中增加其他参数的话,可以将这些参数写进另一个字典类型的config1对象中,然后按照元组形式的不定长参数用法,将config和config1传到connect()中去,这样connect就获取了一个完整的数据库连接配置文件,从而成功建立起连接,如下图所示:(mysql依然可以正常连接
pymysql中connect()方法传参的问题思考_第4张图片
connect()的传参.jpg

总结:

  • 推荐第二种连接方式,简洁优雅;
  • 在pymysql中,这三种数据库连接对象是等价的:connect=Connection=Connect,建议使用connect;

你可能感兴趣的:(pymysql中connect()方法传参的问题思考)