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滴眼泪~
VS Code编写Python3 insert 数据库插入无效也不报错的坑~.~的更多相关文章
- 数据库 插入时 碰到NULL报错判断的一种方法(技巧)
//public static object ToDBNull(object value) 判断插入数据的时候个别参数不能为空的时候做的判断方法 //{ // if (value == null) / ...
- PL/SQL编写的SQL语句插入SqlPlus时,报错 PLS-00302
最近刚开始用PL/SQL,然后发现写SQL语句时,运行的时候,会对表中的字段报错. 好像是对字段的使用有问题 原来写的错误代码大概像这样 DECLARE xuehao XSB.id% TYPE; BE ...
- Python3.x:关于urllib中urlopen报错问题的解决方案
Python3.x:关于urllib中urlopen报错问题的解决方案 调用:urllib.urlopen(url) 报错:AttributeError: 'module' object has no ...
- c#执行插入sql 时,报错:异常信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应
问题:c#执行插入sql 时,报错:异常信息:超时时间已到.在操作完成之前超时时间已过或服务器未响应 解决: SqlCommand cmd = new SqlCommand(); cmd.Comman ...
- 【mybatis】mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wait timeout exceeded; try restarting transaction
今天使用mybatis和jpa的过程中,发现这样一个问题: mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wai ...
- 同时安装Python2与Python3,安装第三方包,老是报错
同时安装Python2与Python3,安装第三方包,老是报错提示Fatal error in launcher: Unable to create process using '"',那可 ...
- SpringBoot配置JDBC连接MySql数据库的时候遇到了报错:HikariPool-1 - Exception during pool initialization
使用SpringBoot做JAVA开发时,JDBC连接MySql数据库的时候遇到了报错: ERROR 10392 --- [ main] com.zaxxer.hikari.pool.HikariPo ...
- 使用DBUnit框架数据库插入特殊字符失败的查错经历
本文记录的是使用DBUnit测试框架进行数据库数据插入时,插入特殊字符失败的查错经历.希望能对向我这样的小白同学们在遇到类似问题时,能够有一些启发.背景:在写跟数据库交互模块的单元测试,数据库表中的e ...
- Mysql 升级到 5.6 后插入语句时间字段报错:Incorrect datetime value: '' for column 'createtime'
今天部署服务器项目运行,当遇见有时间数据对象的插入和更新操作的时候,就报错,如下: Caused by: com.mysql.jdbc.MysqlDataTruncation: Data trunca ...
随机推荐
- 论文阅读笔记十三:The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation(FC-DenseNets)(CVPR2016)
论文链接:https://arxiv.org/pdf/1611.09326.pdf tensorflow代码:https://github.com/HasnainRaz/FC-DenseNet-Ten ...
- Django 基模板布局设置
Django 基模板布局设置 基模板 定义基础模板一般分为三块,css部分,body部分,js部分 将基础统一的部分写在基础模板中 差异部分直接 引用 {% block css %}{% endblo ...
- Go之viper配置
这个模块功能强大,读取配置,命令行,监听配置改变. 堪称多面手,在k8s,docker中,都多有应用. 这套应用,主要包括cobra,pflag,viper三件套. 了解得差不多啦...:) pack ...
- angular 2+ 变化检测系列一(基础概念)
什么是变化检测? 变化检测的基本功能就是获取应用程序的内部状态(state),并且是将这种状态对用户界面保持可见.状态可以是javascript中的任何的数据结构,比如对象,数组,(数字,布尔,字符串 ...
- Java基础知识➣序列化与反序列化(四)
概述 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信息和存储在对象中数据的类型. 将序列化对象写入文件之后,可以从文件 ...
- MyBatis的Mapper接口以及Example的实例函数及详解
来源:https://blog.csdn.net/biandous/article/details/65630783 一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 ...
- linux服务器查看tcp链接shell
netstat -nt |awk '{++S[$NF]} END {for (a in S ) print a,S[a]}'
- 设置VMware10开机自启动并同时启动虚拟机镜像系统
首先,进入VMware Workstation的安装目录 C:\Program Files (x86)\VMware\VMware Workstation
- Python学习(十九) —— 前端基础之HTML
转载自:http://www.cnblogs.com/liwenzhou/p/7988087.html 一.HTML介绍 1.Web服务本质 import socket sk = socket.soc ...
- windows docker常用命令
关键词 示例 作用 attach sudo docker run -itd ubuntu:14.04 /bin/bash 进入容器 exec docker exec -it mysql bash 在容 ...