使用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 连连看连接算法
Nov 22 Python
打开电脑上的QQ的python代码
Feb 10 Python
Python实现Linux下守护进程的编写方法
Aug 22 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
Python笔记之观察者模式
Nov 20 Python
python打开文件的方式有哪些
Jun 29 Python
Python预测2020高考分数和录取情况
Jul 08 Python
Python调用C/C++的方法解析
Aug 05 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
ezSQL PHP数据库操作类库
2010/05/16 PHP
简单的PHP多图上传小程序代码
2011/07/17 PHP
php 短链接算法收集与分析
2011/12/30 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
JavaScript中常见陷阱小结
2010/04/27 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
解决Python使用列表副本的问题
2019/12/19 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
PHP面试题及答案一
2012/06/18 面试题
奖学金自我鉴定范文
2013/10/03 职场文书
研发工程师岗位职责
2014/04/28 职场文书
个人廉政承诺书
2015/04/28 职场文书
毕业生政审意见范文
2015/06/04 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
分享几个实用的CSS代码块
2022/06/10 HTML / CSS
MySQL深分页问题解决思路
2022/12/24 MySQL