使用Python操作MySQL的小技巧


Posted in Python onSeptember 10, 2020

1、获取插入数据的主键id

import pymysql
 
database = pymysql.connect(
  host="127.0.0.1", port=3306, user="root", password="root", database="test"
)
cursor = database.cursor()
 
for i in range(5):
  cursor.execute('insert into test (name) values ("test")')
  print(database.insert_id())
  database.commit()
 
 
cursor.close()
database.close()

通过db.insert_id()方法可以获取插入数据的主键id, 注意一定要在commit之前获取,否则返回0。

2、创建时间、更新时间

DEFAULT CURRENT_TIMESTAMP
--表示当插入数据的时候,该字段默认值为当前时间
 
ON UPDATE CURRENT_TIMESTAMP
--表示每次更新这条数据的时候,该字段都会更新成当前时间

这两个操作是mysql数据库本身在维护,可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护。

CREATE TABLE `test` (
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、Python插入数据库时字符串中含有单引号或双引号报错

可以使用 pymysql.escape_string() 转换

if type(str_content) is str:
  str_content = pymysql.escape_string(str_content)

4、获取单个表的字段名和信息的方法

import MySQLdb as mdb
import sys
#获取数据库的链接对象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#获取普通的查询 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#获取连接对象的描述信息
desc = cur.description
print 'cur.description:',desc
#打印表头,就是字段名字
print "%s %3s" % (desc[0][0], desc[1][0])
for row in rows:
#打印结果
print "%2s %3s" % row

5、从数据库中把图片读出来

import MySQLdb as mdb
import sys
try:
#连接 mysql,获取连接的对象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#执行查询该图片字段的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二进制写文件的方法,打开一个图片文件,若不存在则自动创建
fout = open('image.png','wb')
#直接将数据如文件
fout.write(cursor.fetchone()[0])
#关闭写入的文件
fout.close()
#释放查询数据的资源
cursor.close()
conn.close()
except IOError, e:
#捕获 IO 的异常 ,主要是文件写入会发生错误
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

以上就是使用Python操作MySQL的小技巧的详细内容,更多关于python 操作MySQL的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python处理Excel文件实例代码
Jun 20 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 Python
python调用摄像头显示图像的实例
Aug 03 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
Python读取YAML文件过程详解
Dec 30 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 Python
python中pickle模块浅析
Dec 29 Python
python绘制汉诺塔
Mar 01 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
python编写实现抽奖器
Sep 10 #Python
Python字符串及文本模式方法详解
Sep 10 #Python
python raise的基本使用
Sep 10 #Python
Python常用数字处理基本操作汇总
Sep 10 #Python
Python通用唯一标识符uuid模块使用案例
Sep 10 #Python
Python编写单元测试代码实例
Sep 10 #Python
python super()函数的基本使用
Sep 10 #Python
You might like
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
python设定并获取socket超时时间的方法
2019/01/12 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
python统计字符的个数代码实例
2020/02/07 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
python实现ping命令小程序
2020/12/28 Python
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
房地产员工找工作的自我评价
2013/11/15 职场文书
个人自荐书
2013/12/20 职场文书
优秀演讲稿范文
2013/12/29 职场文书
相亲大会策划方案
2014/06/05 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
学校国庆节活动总结
2015/03/23 职场文书
放假通知格式
2015/04/14 职场文书
小学教育见习总结
2015/06/23 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android