MySQLdb 是用于Python连接Mysql数据库的接口。

安装MySQLdb

[root@ju bottle]# yum install MySQL-python –y

如果使用编译安装请到这里下载安装包https://pypi.python.org/pypi/MySQL-python并执行以下命令

[root@ju bottle]# gunzip  MySQL-python-1.2.3.tar.gz
[root@ju bottle]# tar  xf  MySQL-python-1.2.3.tar
[root@ju bottle]# cd MySQL-python-1.2.3
[root@ju bottle]# python setup.py build
[root@ju bottle]# python setup.py install

数据库连接

直接上代码:

[root@ju bottle]# cat linkmysql.py
#!/usr/bin/env python
#coding=utf-8
import MySQLdbdb =MySQLdb.connect("localhost","root","123","mytestdb") #打开数据库连接
cursor = db.cursor()                   #使用cursor()方法获取操作游标
cursor.execute("SELECTVERSION()")      #使用execute方法执行SQL语句
data = cursor.fetchone()               #使用fetchone()方法获取一条数据。
print "Database version : %s " %data
db.close()                             #关闭数据库连接

创建数据库表

[root@ju bottle]# cat create_table.py
#!/usr/bin/env python
#encoding=utf-8
import MySQLdbdb =MySQLdb.connect("localhost","root","123","mytestdb")
cursor = db.cursor()
cursor.execute("DROP TABLE IF EXISTSMYTABLE")
#如果MYTABLE表已经存在则使用execute()方法删除。
sql = """CREATE TABLE MYTABLE(FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT, SEX CHAR(1),INCOME FLOAT )"""
cursor.execute(sql)
db.close()

数据库插入操作

[root@ju bottle]# cat insert.py
#!/usr/bin/env python
#encoding=utf-8
import MySQLdbdb =MySQLdb.connect("localhost","root","123","mytestdb")
cursor = db.cursor()
sql = """INSERT INTOMYTABLE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""#上述sql语句也可以写成以下形式。
#sql = "INSERT INTOMYTABLE(FIRST_NAME, \
#      LAST_NAME, AGE, SEX, INCOME) \
#      VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
#      ('Mac', 'Mohan', 20, 'M', 2000)try:cursor.execute(sql)db.commit()    #提交到数据库执行
except:db.rollback()    #如果执行错误则回滚
cursor.execute(sql)
db.close()

数据库查询操作

Python查询Mysql使用 fetchone()方法获取单条数据, 使用fetchall() 方法获取多条数据。

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象

fetchall():接收全部的返回结果行.

rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

[root@ju bottle]# cat query.py
#!/usr/bin/env python
#encoding=utf-8
import MySQLdbdb =MySQLdb.connect("localhost","root","123","mytestdb")
cursor = db.cursor()
sql = "SELECT * FROM MYTABLE WHEREINCOME > '%d'" % (1000)try:cursor.execute(sql)results = cursor.fetchall() #获取所有记录列表for row in results:fname = row[0]lname = row[1]age = row[2]sex = row[3]income = row[4]# 打印结果print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \(fname, lname, age, sex, income )
except:print "Error: unable to fecth data"cursor.execute(sql)
db.close()

数据库更新操作

[root@ju bottle]# cat update.py
#!/usr/bin/env python
#encoding=utf-8
import MySQLdbdb =MySQLdb.connect("localhost","root","123","mytestdb")
cursor = db.cursor()
sql = "UPDATE MYTABLE SET LAST_NAME ='XIAOMING' WHERE INCOME = '%s'" % ('2000')
try:cursor.execute(sql)db.commit()
except:db.rollback()
cursor.execute(sql)
db.close()

执行事务

事务机制可以确保数据一致性。

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

Python DB API 2.0 的事务提供了两个方法 commit 和 rollback。

这篇博客跟bottle框架本身关系不大,但是操作数据库又是web开发必不可少的,所以就跟bottle放到一起了。

转载于:https://blog.51cto.com/changfei/1664025

bottle框架学习(八)之Mysql数据库的操作相关推荐

  1. tp5.0 mysql_《TP5.0学习笔记---对Mysql数据库的操作(一)》

    一.连接数据库 在ThinkPHP框架中,它为我们提供了非常方便的方式连接数据库,我们可以通过简单的修改配置文件就可以连接上我们的mysql/oracle/SQL Server. 在我们的PHP中,大 ...

  2. laravel database.php,php Laravel框架学习(一) 之 建立数据库并填充测试数据

    php Laravel框架学习(一) php Laravel框架学习之Laravel 建立数据库并填充测试数据 建立数据库 前面我们已经明确目标网站的基本功能,现在我们先来建立它的数据库. 设计数据库 ...

  3. PyTorch框架学习八——PyTorch数据读取机制(简述)

    PyTorch框架学习八--PyTorch数据读取机制(简述) 一.数据 二.DataLoader与Dataset 1.torch.utils.data.DataLoader 2.torch.util ...

  4. Mysql数据库(三)——mysql数据库高级操作

    Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...

  5. MySQL数据库常用操作(20221211)

    记录:360 场景:MySQL数据库常用操作,启动.重启.停止MySQL服务:创建用户.数据库.表.主键.索引.注释等.配置远程可连接.配置环境变量.常用系统表操作.常用命令行操作.表的增删改查等操作 ...

  6. C语言对mysql数据库的操作

    C语言对mysql数据库的操作 原文:C语言对mysql数据库的操作 这已经是一相当老的话题.不过今天我才首次使用,把今天的一些体会写下来,也许能给一些新手带来一定的帮助,更重要的是供自己今后忘记的怎 ...

  7. MySQL 数据库的操作 连接、新增、删除、选择数据库 命令行(带图)

    MySQL 数据库的操作 连接.新增.删除.选择数据库 命令行 一.连接数据库 在命令行通过 下面命令 mysql -u root -p123456 #这里跟的是自己的密码 8.0的密码要回车后输入. ...

  8. MYSQL数据库表操作pdf

    <MYSQL数据库表操作pdf> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731023.html

  9. 通过图形界面对MySQL数据库进行操作

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

  10. FastAPI 对MySQL 数据库的操作(win64)

    一.FastAPI 对MySQL 数据库的操作 pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simplepip instal ...

最新文章

  1. 有哪些高效看文献的方法?
  2. 【LeetCode】3Sum Closest 解题报告
  3. python折线图样式_011 利用Python进行数据可视化
  4. emacs 安装auto-complete
  5. js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))
  6. 【Linux】一步一步学Linux——atrm命令(140)
  7. mysql explain ref列_mysql explain中的列
  8. 如何提高实景三维智慧城市项目的建模精度和建模效果
  9. post方式加载iframe
  10. 信息安全政策(隔离与监控)
  11. 34、linux shell,常用函数strace
  12. 2022年新版YOLO解读(PP-YOLOE)
  13. python的语言风格(一)
  14. 如何直接通过电脑查看路由器密码
  15. Android系统epub阅读器分享
  16. python之批量下载网页数据
  17. 高效能人士执行的四原则(2017-12-15)
  18. 二次曲面的绘制函数(一)
  19. KZ笔记5:连跳丧失速度的原因
  20. 单片机:中断系统控制二极管的亮灭

热门文章

  1. 云服务器无法绑定公网IP问题解决方案
  2. Petuum提出序列生成学习算法通用框架
  3. 深入探索.NET内部了解CLR如何创建运行时对象
  4. 跳过IE7beta2版的XP正版检测!
  5. Summer Plan(挖坑待填)
  6. SpringInAction--Spring Web应用之SpringMvc 注解配置
  7. 嵌入式驱动开发之2440/2410---硬件看门狗,喂狗
  8. wordpress 重新生成附件文件名
  9. Asp.Net构架(Http请求处理流程) - Part.1
  10. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...