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语句和获取数据

具体操作:

  1. 创建connection对象
  2. 获取cursor
  3. 使用cursor执行SQL语句
  4. 使用cursor获取数据,并判断执行状态
  5. 提交事务或者回滚事务
  6. 关闭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()

注意事项:

python与MySQL数据库的更多相关文章

  1. Python操作Mysql数据库时SQL语句的格式问题

    一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...

  2. python使用mysql数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  3. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  4. python 连接Mysql数据库

    1.下载http://dev.mysql.com/downloads/connector/python/ 由于Python安装的是3.4,所以需要下载下面的mysql-connector-python ...

  5. Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

    这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...

  6. 使用python将mysql数据库的数据转换为json数据

    由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...

  7. python对mysql数据库操作的三种不同方式

    首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...

  8. 使用python操作mysql数据库

    这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...

  9. python专题-Mysql数据库(python3._+ PyMysql)

    之前写过一篇 Python使用MySQL数据库的博客,主要使用的是Python2和MySQLdb驱动. python使用mysql数据库 Python2 ---> Python3 MySQLdb ...

  10. python专题-Mysql数据库(python2._+ Mysqldb)

    Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...

随机推荐

  1. android 圆角图片的实现形式

    android 圆角图片的实现形式,包括用第三方.也有系统的.比如makeramen:roundedimageview,系统的cardview , glide .fresco . compile 'c ...

  2. rsync+lsyncd实现实时同步

    1.接收端安装rsync,修改/etc/rsyncd.conf配置文件,然后启动服务. uid = rootgid = rootuse chroot = nomax connection = 4sec ...

  3. oracle命令集

    1.安装oracle后,需要导入表数据,操作如下: 连接数据库:sqlplus / as sysdba 创建表空间: create tablespace user_data logging dataf ...

  4. jquery 配合 ajax 完成 在线编辑 你值得拥有

    思路分析: 将 table中的表格 改变成为 input表格框获得值 ajax配合修改 删除 <?php use yii\helpers\Url; $web = Url::base(); ?&g ...

  5. JavaSE 第二次学习随笔(作业一)

    package homework2; import java.io.ObjectInputStream.GetField; import java.util.Arrays; public class ...

  6. day1_作业2(三级菜单)

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- province={'江苏省':['南京市','苏州市','无锡市'],'浙江省':['杭州市','温州 ...

  7. 【转载】java 客户端链接不上redis解决方案 (jedis)

    本文出自:http://blog.csdn.net/lulidaitian/article/details/51946169 出现问题描述: 1.Could not get a resource fr ...

  8. python学习之循环语句

    编程语言中的循环语句,以循环判断达式是否成立为条件,若表达式成立则循环执行该表达式,若不成立则跳出当前执行执行语句且继续执行其后代码. 如下图所示. Python中提供以下循环方式 循环类型 描述 w ...

  9. python创建字典

    创建: {x:x**2 for x in (2,4,6)} dict(xjm=110,lxh=119,pzq=120) dict([('a',1),('b',2),('c',3)])

  10. Numpy数据存取与函数

    数据的CSV文件存取 多维数据的存取 NumPy的随机数函数 NumPy的统计函数 NumPy的梯度函数