VS Code编写Python3 insert 数据库插入无效也不报错的坑~.~

标题最近在开发中需要用到web端开发工具、需要用python工具。偶然发现微软的良心之作:Visual Studio Code,这个大小才几十兆的轻量级代码编辑器,功能却是重量级的,通过插件的方法,,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。

[最佳填坑方案出炉,点击查看]

有了Visual Studio Code(以下简称vsc),可以一个编辑器搞定多个语言编程开发了,界面UI还美美哒,简直不要太爽~

不过今天在使用vsc写个简单的Python3爬虫脚本时,却被坑了一道,也是自己对Python语言不熟悉的原因吧。因为脚本中需要把数据存储到数据库,我使用的是PyMysql,而vsc只是简单的安装了Python3支持插件,下面看案发现场:

# ...前面省略无数行代码
try:
    insertSql = "insert into test (name, path, platform) values ('%s', '%s', '%s');" % ('美食', '/ch/news_food/', 'toutiao')
    cursor.execute(insertSql)
    db.commit
    cursor.close
except:
    db.rollback
finally:
    db.close
 # ...后面省去了N滴眼泪~

就是这个智能补全,很爽快的就按Tab选中了,注意看图:

在这里插入图片描述

自动补全后是这样的:

在这里插入图片描述
然后很愉快的执行了,也没报错,但是数据库就是没有出现这个数据,一次,两次,…好多草泥马在犇腾~

我就纳了闷了,手动把这个insertSql的内容直接复制粘贴到sqlyog里面执行,买了疯了~ 竟然有,但是一看id却不是1(对于一个空表插入一条数据,按道理应该是1),我这个表的id设置为bigint 的自增类型,然后我又在phthon这个脚本执行一次,然后又在sqlyog再执行,id变为3(不是2….),也就是说,用python脚本插入操作,数据没写进去,但是自增的主键值倒是记录下来了~

后台仔细一看,艾玛呀~ db、cursor的后面点引用的几个方法,名字后面应该带 () 括号的呀… 容错力太强的python解析器,让我也忘了刚开始学编程时属性跟方法的概念… 垂手顿足一番后,修改为如下,执行,欧了~

# ...前面省略无数行代码
try:
    insertSql = "insert into test (name, path, platform) values ('%s', '%s', '%s');" % ('美食', '/ch/news_food/', 'toutiao')
    cursor.execute(insertSql)
    db.commit()
    cursor.close()
except:
    db.rollback()
finally:
    db.close()
 # ...后面省去了N滴眼泪~
原文地址:https://www.cnblogs.com/xiaocy66/p/10589287.html