python核心编程学习笔记-2016-09-17-02-数据库编程(二)

        21.2 Python数据库应用程序 程序员接口(DB-API)

        DB-API是一个规范。它定义了一系列必需的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。

        21.2.1 模块属性

        一个DB-API兼容的模块必须定义如下所示的所有全局属性。

属性名描述
apilevel模块兼容的DB-API版本号
threadsafety线程安全级别
paramstyle该模块支持的SQL语句参数风格
connect()连接参数
(异常)--

          1. 数据属性
          (1) apilevel 
          这是一个字符串,表示这个DB-API模块所兼容的DB-API最高版本号,如'1.0'或'2.0'等,默认是'1.0'。
>>> import MySQLdb
>>> MySQLdb.apilevel
'2.0'
          (2) Threadsafety
          这是一个整型。取值如下:
  • 0:不支持线程安全,多个线程不能共享此模块
  • 1:初级线程安全支持:线程可以共享模块,但不能共享连接
  • 2:中级线程安全支持:线程可以共享模块和连接,但不能共享游标
  • 3:完全线程安全支持:线程可以共享模块、连接和游标
>>> MySQLdb.threadsafety
1
          (3) Paramstyle
          这同样也是一个字符串,表明SQL语句中字符串替代的方式。
参数风格描述示例
numeric(数字)数字位置风格WHERE name=:1
named(命名)命名参数风格WHERE name=:name
pyformat字典格式转换WHERE name=%(name)s
qmark(问号)问号风格WHERE name=?
format标准ANSI C格式转换WHERE name=%s

>>> MySQLdb.paramstyle
'format'
          2. 函数属性
          connect()方法生成一个连接对象。这个方法有五个参数:user、password、host、database和dsn。
          e.g. connect(dsn='my', host='MYDB', user='guido', password='2349')
参数描述
userUsername
passwordPassword
hostHostname
databaseDatabase name
dsnData source name
           数据库连接可以以一个DSN字符串的形式提供,也可以以多个位置相关参数的形式提供。
  • MySQLdb.connect(host='dbserv', db='inv', user='smith')
  • PgSQL.connect(database='sales')
  • psycopg.connect(database='templates1', user='pgsql')
  • gadfly.dbapi20.connect('csrDB', '/usr/local/database')
  • sqlite3.connect('marketing/test')     
         3. 异常
         兼容标准的模块也应该提供这些异常类。
异常描述
Warning警告异常基类
Error错误异常基类
InterfaceError数据库接口错误
DatabaseError数据库错误
DataError处理数据时出错
OperationalError数据库执行命令时出错
IntegerityError数据完整性错误
InternalError数据库内部出错
ProgrammingErrorSQL执行失败
NotSupportedError试图执行数据库不支持的特性



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值