使用Python操作MySQL的小技巧
作者:新码农 发布时间:2024-01-23 16:13:49
标签:python,操作,MySQL
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)
来源:https://www.addcoder.com/blog/article_detail/gx314vzk/


猜你喜欢
- 1. mean() 函数定义:numpy.mean(a, axis=None, dtype=None, out=None, keepdims
- 前言目前机器学习框架有两大方向,Pytorch和Tensorflow 2。对于机器学习的小白的我来说,直观的感受是Tensorflow的框架
- 图像显示和打印面临的一个问题是:图像的亮度和对比度能否充分突出关键部分。这里所指的“关键部分”在 CT 里的例子有软组织、骨头、脑组织、肺、
- 起源就在今年9月份,我负责的部门平台项目发布了一个新版本,该版本同时上线了一个新功能,简单说有点类似定时任务。头一天一切正常,但第二天出现了
- 逻辑回归模型 逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成
- 本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下:前面讲述了关于双色球的各种算法,
- 这篇文章主要介绍了python构造函数init实例方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态
- 本文研究的主要是Python web开发框架Django的管理界面的相关内容,具体如下。admin界面的路径,通常在my_project中已
- matplotlib绘图库模块安装pip install matplotlib导入pyplot子模块import matplotlib.py
- MatrixOne是一个新一代超融合异构数据库,致力于打造单一架构处理TP、AP、流计算等多种负载的极简大数据引擎。MatrixOne由Go
- 我们今天就来看一下PHP 7正式版的算法和 wordpress 应用在其上的性能表现。PHP7 的安装,真是非常地向下兼容,下载,解压,把之
- messageboxtkinter.messagebox中封装了多种消息框,其输入参数统一为title, message以及其他参数。其中t
- 随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.
- 切片是 Python 中最迷人最强大最 Amazing 的语言特性(几乎没有之一),在《Python进阶:切片的误区与高级用法》中,我介绍了
- 一、介绍说明mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不过它是一个控制台的形
- 大致流程:导包---import collections新建一个有序字典---collections.OrderedDict()写入json
- 所有的前提都需要获取到root权限1.结束mysql进程//Linuxsudo services mysql stop//Macbrew s
- 本文实例讲述了Thinkphp5.0 框架的请求方式与响应方式。分享给大家供大家参考,具体如下:Thinkphp5.0 的请求方式方法一(使
- 在JavaScript开发中,被人问到:null与undefined到底有啥区别?一时间不好回答,特别是undefined,因为这涉及到un