Python --mysql数据库操作2

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。

Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库.以下的以MySQLdb为实例

Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。

Python DB-API使用流程:

  • 引入 API 模块。
  • 获取与数据库的连接。
  • 执行SQL语句和存储过程。
  • 关闭数据库连接

以下实例要点:

1、数据库的连接

2、数据库连接编码:charset='utf8'

3、mysq的执行:cusor 游标、execute()执行、

4、查询结果获取方法:

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
  • fetchall():接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

5、数据库执行异常输出:

try:
........
except Exception,ex:
#输出异常信息
print "查询失败:",Exception,":",ex
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import datetime
import MySQLdb

#打开数据库连接,注意加:charset,否则输出的中文内容将为?号
db=MySQLdb.connect("192.168.96.22","root","ktvtest123","viptest",charset='utf8')

#使用cussor()方法获取操作游标
cusor = db.cursor()

#使用execute()方法执行sql插入语句",
#(1)Python代码换行就是每行后面加个 \
#(2)PYHTON 传参:%s--字符串,%d--整数类型,%f--float类型,%.2f---float类型(保留2位小数)
sql="INSERT INTO weeks(modelname, versioname, tester, poster, innerstatus) VALUES ('mia','miao2','5','miao4','miao5')"
sql1="INSERT INTO weeks (modelname, \
versioname, tester, poster, innerstatus)  VALUES ('%s', '%s', '%s', '%s', '%s' )" % \
       ('miao7', 'miao7', 'miao7', 'miao7', 'miao7')

#
try:
    #执行sql语句
    #cusor.execute(sql1)
    # 使用execute()方法执行sql查询语句
    cusor.execute("select * from weeks")

    # Python查询Mysql使用fetchone()方法获取单条数据
    # 使用fetchall()方法获取多条数据。
    # fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
    # fetchall():接收全部的返回结果行.
    # rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数


    # 使用fetchone()方法获取一条数据
    #data = cusor.fetchone()
    #print data[0], data[1], data[2], data[3], data[4], data[5]

    # 使用fetchall()方法获取所有数据列表
    results = cusor.fetchall()
    for row in results:
        modelname=row[0]
        versioname=row[1]
        tester=row[2]
        poster=row[3]
        innerstatus=row[4]
        createTime=row[5]
        #print createTime
        print "modelname = %s,versioname= %s, tester= %s, poster= %s, innerstatus= %s" % \
               (modelname, versioname, tester, poster, innerstatus),"createTime=",createTime

    #rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
    print cusor.rowcount
       # print results[0]

    #提交到数据库执行:
    #db.commit()
    #出现异常时,执行操作
except Exception,ex:
    #发生错误时,进行回滚
    db.rollback()
    #输出异常信息
    print "查询失败:",Exception,":",ex
#关闭数据库
db.close()

######数据库插入操作

 

posted @ 2017-07-15 19:59  平原少年  阅读(239)  评论(0编辑  收藏  举报