python与MySQL数据库
python与MySQL数据库
我使用的软件:python2.7 + MySQL+ Navicat for MySQL + Atom
注意:你的数据库表格类型的引擎为:InnoDB ;字符集:utf8 ;排序规则:utf8_general_ci
Python开发MySQL的思想:
图片来自慕课网视频截图:
其中我使用的编辑器是Atom,MySQL数据库的客户端是Navicat for MySQL。
python DB API
思想:
- 由connection建立数据库连接
- 由cursor执行SQL语句和获取数据
具体操作:
- 创建connection对象
- 获取cursor
- 使用cursor执行SQL语句
- 使用cursor获取数据,并判断执行状态
- 提交事务或者回滚事务
- 关闭cursor ,关闭connection
创建connection对象:
通过下面这一行代码进行与数据库的连接。
import MySQLdb
conn = MySQLdb.Connect(
host = '127.0.0.1',
port = 3306,
user = 'your user_name',
passwd = 'your passwd',
db = 'your db_name',
charset = 'utf8'
)
获取cursor:
cursor 是一个游标,用于指定数据库的表中的某一行
cursor = conn.cursor()
使用cursor执行SQL语句:
cursor执行SQL语句就相当于在数据库中的查询操作:
sql_sentence = 'your sql_sentence'
cursor.execute(sql_sentence)
通过上面这行代码既可以对数据库进行增,删,改,查等操作
使用cursor获取数据,并判断执行状态:
获取数据有三种方式:
rs = cursor.fetchall() //获取当前游标往下的所有数据
rs = cursor.fetchone() //获取当前游标所在行的数据
rs = cursor.fetchmany(x) //获取当前游标往下 x 行的数据
此后即可以通过对rs的操作,输出我们所需要的数据,例如:
for row in rs:
print "userid=%s,username=%s" %row
提交事务或者回滚事务:
事务的概念就是一组需要同时完成的事情,例如往a转钱给b,那么就需要有同时判断两个账户是否存在,a是否有足够的钱,若有,a扣款的同时b要存款等。
这是一系列要同时考虑的事情,如果在中间不满足条件,则需要回滚事务,即返回到之前的初始状态。
conn.commit() //提交事务
conn.rollback() //回滚事务
在此,我们通常将某一事务放在一个try
的代码块中,当出现错误的时候,在except
块中报错以及回滚事务:
def transfer(self,sourse_acctid,target_acctid,money): // 很普通的一个转钱的函数
try:
self.check_acct_available(sourse_acctid)
self.check_acct_available(target_acctid)
self.has_enough_money(sourse_acctid,money)
self.reduce_money(sourse_acctid,money)
self.add_money(target_acctid,money) //在此列函数调用中,如果出现错误,会将错误信息给Exception,同时回滚事务;如果顺利执行,则进行下一步:提交事务。
self.conn.commit() //提交事务
except Exception as e:
self.conn.rollback() //回滚事务
raise e //报错
关闭cursor,关闭connection:
为了防止浪费资源,在每次游标进行完操作后,都要关闭游标,在对数据库完成操作后要关闭数据库连接。
cursor.close()
conn.close()
注意事项:
利用try代码块进行SQL操作
每次操作记得返回错误信息,以便调试
python与MySQL数据库的更多相关文章
- Python操作Mysql数据库时SQL语句的格式问题
一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- python 连接Mysql数据库
1.下载http://dev.mysql.com/downloads/connector/python/ 由于Python安装的是3.4,所以需要下载下面的mysql-connector-python ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
- 使用python将mysql数据库的数据转换为json数据
由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...
- python对mysql数据库操作的三种不同方式
首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...
- 使用python操作mysql数据库
这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...
- python专题-Mysql数据库(python3._+ PyMysql)
之前写过一篇 Python使用MySQL数据库的博客,主要使用的是Python2和MySQLdb驱动. python使用mysql数据库 Python2 ---> Python3 MySQLdb ...
- python专题-Mysql数据库(python2._+ Mysqldb)
Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...
随机推荐
- JavaSE 面试题总结
一. JavaSE 4 1. 面向对象的特征有哪些方面 4 2. String是最基本的数据类型吗? 4 3. super()与this()的区别? 4 4. JAVA的事件委托机制和垃圾回收机制 4 ...
- 实现一个clone函数,对javascript中的5种数据类型进行值复制
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Spring详解篇之IoC控制反转
###一.Spring概况 spring是一个开源框架 是一个轻量的控制反转和面向切面的容器框架 大小和开销都是轻量的. 通过控制反转技术可以达到松耦合的目的 切面编程,允许通过分离应用的业务逻辑. ...
- java基础 UDP通信 user datagram protocol 用户数据豆协议 TCP transmission control protocol 传输控制协议 多线程TCP
无连接通信 UDP 客户端 package com.swift.test; import java.io.IOException; import java.net.DatagramPacket; im ...
- 调整JVM占用内存空间方法
JVM默认占用空间为64M 调整方法如下图 在虚拟机参数中调整为80M 调试可以用 Byte[] arr=new Byte[1024*1024*64];
- JavaScript的变量命名规则和关键字的介绍
变量的名字 就像 人的名字一样,不能乱起. 你的代码不是只有你一个人看,变量既然是名字,那就这个名字就要有特殊的意义: 举个栗子:翠花,我们能从这个名字中得到什么信息?(这个 ...
- linux文件访问过程和权限
第1章 文件访问过程详解 1.1 文件访问过程 第2章 权限 2.1 对于文件rwx含义 r读取文件内容 w修改文件内容 需要r权限配合 只有w权限的时候,强制保存退出会导致源文件内容丢失 x权限表示 ...
- kafka单机环境搭建及其基本使用
最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...
- 列表,元组的操作,for循环
1.列表 # li = ["wang","jian","wei"] # print(li) # 结果:['wang', 'jian', 'w ...
- fastadmin 后台管理框架使用技巧(持续更新中)
fastadmin 后台管理框架使用技巧(持续更新中) FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架,具体介绍,请查看文档,文档地址为:https://doc. ...