使用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脚本实现12306火车票查询系统
Sep 30 Python
Python Socket编程详细介绍
Mar 23 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
Django中使用Celery的方法示例
Nov 29 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
在Python 的线程中运行协程的方法
Feb 24 Python
Python描述符descriptor使用原理解析
Mar 21 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
详解如何用Python实现感知器算法
Jun 18 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中如何实现常用邮箱的基本判断
2014/01/07 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
jquery ui resizable bug解决方法
2010/10/26 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
python爬虫基本知识
2018/03/05 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
详解Python 解压缩文件
2019/04/09 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
给幼儿园老师的表扬信
2014/01/19 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
店铺转让协议书
2015/01/29 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
小学中队活动总结
2015/05/11 职场文书
2015年统战工作总结
2015/05/19 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js