使用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中operator模块的操作符使用示例总结
Jun 28 Python
python实现FTP服务器服务的方法
Apr 11 Python
Python实现Linux中的du命令
Jun 12 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 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
农民和部队如何穿矿
2020/03/04 星际争霸
php中error与exception的区别及应用
2014/07/28 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python多线程多进程实例对比解析
2020/03/12 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
决定成败的关键——创业计划书
2014/01/24 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
先进班集体事迹材料
2014/12/25 职场文书
邀请函怎么写
2015/01/30 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS