使用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安装以及IDE的配置教程
Apr 29 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
python自动12306抢票软件实现代码
Feb 24 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
python3 线性回归验证方法
Jul 09 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
Numpy 多维数据数组的实现
Jun 18 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
vue项目实战总结篇
2018/02/11 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python实现k-means聚类算法
2018/02/23 Python
python表格存取的方法
2018/03/07 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
带你认识Django
2019/01/15 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python相对企业语言优势在哪
2020/06/12 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
学校安全管理制度
2015/08/06 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python