菜鸟教程python3 mysql_python基础教程使用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)
以上就是使用Python操作MySQL的小技巧的详细内容,更多关于python 操作MySQL的资料请关注菜鸟教程www.piaodoo.com其它相关文章!
菜鸟教程python3 mysql_python基础教程使用Python操作MySQL的小技巧相关推荐
- 菜鸟教程python3 mysql_Python 操作 MySQL 数据库
Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的 ...
- app自动化测试appium教程之三——appium基础命令(python)
app自动化测试教程之三--appium基础命令(python) hello appium 基础操作API 教学视频参考b站课程,此文为学习记录 (免费的羊毛,要薅呀,筒子们~) 零基础入门移动自动化 ...
- 【精】合集 zbrush 10种风格女性角色建模 新手教程,zbrush基础教程 案例讲解
[精]合集 zbrush女性角色建模 新手教程,zbrush基础教程 案例讲解 这里是游戏模型爱好者的聚集地, [戳我立即进入]企鹅建模圈子,提供3Dmax.Zbrush.Maya.次时代等游戏建模软 ...
- Python操作Mysql实例代码教程在线版(查询手册)_python
实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...
- Python操作Mysql实例代码教程(查询手册)
2019独角兽企业重金招聘Python工程师标准>>> 本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执 ...
- python进阶与数据操控_零基础机器学习Python进阶:Python操作MySql
阅读文本大概需要 6 分钟 前言 基础写了十篇,以后会继续更,这是第二篇进阶,文末会放上链接,进阶分成另一个系列,柠檬有时间会整理好菜单栏让大家更方便的阅读基础和进阶,柠檬会把自己在当时做的项目写到进 ...
- imooc的疯狂的蚂蚁的课程《Python操作MySQL数据库》 python3+pymysql模块来操作mysql数据库
以下代码为imooc的疯狂的蚂蚁的课程<Python操作MySQL数据库>的python3版本的代码,使用的是pymysql模块来操作mysql数据库,代码与原课程有所改动,注意运行时需要 ...
- python 天气预报 mysql_python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库...
前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 "test-mysql". Python 操作 ...
- python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据
30 May 2015 爬虫抓到的数据需要存储到MySQL中,所以我们需要熟悉下使用Python操作MySQL数据库.首先你的机器上要安装MySQLdb,MySQLdb是用于Python连接Mysql ...
最新文章
- Azure运维系列10:跨订阅迁移ARM虚拟机
- php 将图片截取成3张,【php】php gd库怎么把一个图片裁剪成圆形的
- Sql Server 2005 存储过程分页
- 【动态规划】【图论】[NOIP模拟赛]独立集
- ft2232驱动安装方法_ST-Link资料03_ST-Link固件升级、驱动下载安装方法
- Android特效 五种Toast详解
- play 连接mysql_Play framework 2.x 连接mysql | 学步园
- [HAOI2016]食物链
- 生成的数据库脚本没有注释?
- Java 内存 关系_发生在Java内存模型中的关系之前
- 如何使用jQuery设置输入文本的值
- C#winform省市县联动,以及有的县是空值时显示异常的处理
- 蜘蛛日志分析工具_如何分析网站日志 - 360蜘蛛池
- 数据库课程设计 论坛系统—— 系统详细设计说明书
- 工科数学分析之数学感悟
- 高中计算机绘画教,高中美术电脑绘画教案.doc
- Android 接入穿山甲SDK之Banner广告
- EditText的getText()方法
- Java、JSP外卖订餐系统
- 鸢尾花(iris)数据集保存到本地以及sklearn其他数据集下载保存
热门文章
- Activity中四大启动模式
- Ssm框架实现的学生信息管理系统
- 基于JAVA+SpringBoot+Mybatis+MYSQL的停车场管理系统
- Django学习之十: staticfile 静态文件
- 从Windows复制文件到Linux显示乱码问题
- 提升自己逼格的编程之美之代码规范
- ccpc中国大学生首届程序设计竞赛
- CSerialPort串口类最新修正版(解决关闭死锁问题)
- [置顶] Oracle 11.2.0.3.0 Active Data Guard 遇 ORA-10458、ORA-01152、ORA-01110 错误
- linux内核I2C体系结构(注意结构体原型)