使用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 相关文章推荐
python基础教程之数字处理(math)模块详解
Mar 25 Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
python中bisect模块用法实例
Sep 25 Python
python修改注册表终止360进程实例
Oct 13 Python
在Python中进行自动化单元测试的教程
Apr 15 Python
python处理二进制数据的方法
Jun 03 Python
python交互界面的退出方法
Feb 16 Python
Python测试模块doctest使用解析
Aug 10 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
如何用Python徒手写线性回归
Jan 25 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
一个好用的分页函数
2006/11/16 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
详解vuex的简单使用
2018/03/12 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
简单实现python进度条脚本
2017/12/18 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
python 批量修改/替换数据的实例
2018/07/25 Python
python语言元素知识点详解
2019/05/15 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
酒店采购员岗位职责
2014/03/14 职场文书
学员自我鉴定
2014/03/19 职场文书
工作评语大全
2014/04/26 职场文书
数字化校园建设方案
2014/05/03 职场文书
ktv好的活动方案
2014/08/15 职场文书
检察院起诉书
2015/05/20 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
2016年母亲节广告语
2016/01/28 职场文书
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python