bottle框架学习(八)之Mysql数据库的操作
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数据库的操作相关推荐
- tp5.0 mysql_《TP5.0学习笔记---对Mysql数据库的操作(一)》
一.连接数据库 在ThinkPHP框架中,它为我们提供了非常方便的方式连接数据库,我们可以通过简单的修改配置文件就可以连接上我们的mysql/oracle/SQL Server. 在我们的PHP中,大 ...
- laravel database.php,php Laravel框架学习(一) 之 建立数据库并填充测试数据
php Laravel框架学习(一) php Laravel框架学习之Laravel 建立数据库并填充测试数据 建立数据库 前面我们已经明确目标网站的基本功能,现在我们先来建立它的数据库. 设计数据库 ...
- PyTorch框架学习八——PyTorch数据读取机制(简述)
PyTorch框架学习八--PyTorch数据读取机制(简述) 一.数据 二.DataLoader与Dataset 1.torch.utils.data.DataLoader 2.torch.util ...
- Mysql数据库(三)——mysql数据库高级操作
Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...
- MySQL数据库常用操作(20221211)
记录:360 场景:MySQL数据库常用操作,启动.重启.停止MySQL服务:创建用户.数据库.表.主键.索引.注释等.配置远程可连接.配置环境变量.常用系统表操作.常用命令行操作.表的增删改查等操作 ...
- C语言对mysql数据库的操作
C语言对mysql数据库的操作 原文:C语言对mysql数据库的操作 这已经是一相当老的话题.不过今天我才首次使用,把今天的一些体会写下来,也许能给一些新手带来一定的帮助,更重要的是供自己今后忘记的怎 ...
- MySQL 数据库的操作 连接、新增、删除、选择数据库 命令行(带图)
MySQL 数据库的操作 连接.新增.删除.选择数据库 命令行 一.连接数据库 在命令行通过 下面命令 mysql -u root -p123456 #这里跟的是自己的密码 8.0的密码要回车后输入. ...
- MYSQL数据库表操作pdf
<MYSQL数据库表操作pdf> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731023.html
- 通过图形界面对MySQL数据库进行操作
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- FastAPI 对MySQL 数据库的操作(win64)
一.FastAPI 对MySQL 数据库的操作 pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simplepip instal ...
最新文章
- 有哪些高效看文献的方法?
- 【LeetCode】3Sum Closest 解题报告
- python折线图样式_011 利用Python进行数据可视化
- emacs 安装auto-complete
- js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))
- 【Linux】一步一步学Linux——atrm命令(140)
- mysql explain ref列_mysql explain中的列
- 如何提高实景三维智慧城市项目的建模精度和建模效果
- post方式加载iframe
- 信息安全政策(隔离与监控)
- 34、linux shell,常用函数strace
- 2022年新版YOLO解读(PP-YOLOE)
- python的语言风格(一)
- 如何直接通过电脑查看路由器密码
- Android系统epub阅读器分享
- python之批量下载网页数据
- 高效能人士执行的四原则(2017-12-15)
- 二次曲面的绘制函数(一)
- KZ笔记5:连跳丧失速度的原因
- 单片机:中断系统控制二极管的亮灭
热门文章
- 云服务器无法绑定公网IP问题解决方案
- Petuum提出序列生成学习算法通用框架
- 深入探索.NET内部了解CLR如何创建运行时对象
- 跳过IE7beta2版的XP正版检测!
- Summer Plan(挖坑待填)
- SpringInAction--Spring Web应用之SpringMvc 注解配置
- 嵌入式驱动开发之2440/2410---硬件看门狗,喂狗
- wordpress 重新生成附件文件名
- Asp.Net构架(Http请求处理流程) - Part.1
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...