使用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简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
windows下添加Python环境变量的方法汇总
May 14 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
超实用的 30 段 Python 案例
Oct 10 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 Python
什么是python类属性
Jun 10 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
Python借助with语句实现代码段只执行有限次
Mar 23 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
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
js 手机号码合法性验证代码集合
2012/09/29 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
wxPython实现窗口用图片做背景
2018/04/25 Python
利用Python优雅的登录校园网
2020/10/21 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
学前教育专业求职信
2014/09/02 职场文书
医院护士工作检讨书
2014/10/26 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
结婚主持人致辞
2015/07/28 职场文书
公司仓库管理制度
2015/08/04 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP