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

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

连接方式一:

连接方式(一).jpg


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

连接方式二:

连接方式(二).jpg


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

connect官方文档.jpg

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

连接方式三:

连接方式(三).jpg

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

总结:

  • 推荐第二种连接方式,简洁优雅;
  • 在pymysql中,这三种数据库连接对象是等价的:connect=Connection=Connect,建议使用connect;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,178评论 6 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,467评论 25 708
  • 空气凝重 嚣张的灰尘也收敛了浮躁 北风嘶叫着,气氛紧张 它把锋利的冰刀架在我裸露的脖颈上 我说:冬哥啊 我有妻卧病...
    楼台花舍阅读 304评论 3 7
  • 随着Google抛弃HttpClient和Volley的逐步没落,OkHttp越来越受到开发者的青睐。高楼大厦也是...
    24K男阅读 498评论 0 1