Python学习笔记21:Python数据库编程

本文介绍了Python中的持久存储方法,包括文件、关系型数据库及其实现接口,如MySQLdb、psycopg等,并概述了DB-API2.0标准及SQLite的特点。此外还探讨了几种常用的Python ORM模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、介绍
持久存储:文件、关系型数据库、其他一些变种。
基于常规文件的Python和DBM接口来实现持久存储,比如*dnm,dbhas/bsddb文件,helve(pickle和DBM的结合)。这些接口都提供了类似字典的对象接口。
数据库底层存储:普通操作系统文件,专用操作系统文件,也可是磁盘分区。

2、Python数据库应用程序 程序员接口(DB-API)
(1)DB-API 2.0
DB-API是一个规范,它定义了一系列必需的对象和数据库存储方式,以便为各种各样的底层数据库和多种多样的数据库接口程序提供一致的访问接口。
一个DB-API兼容的模块必须定义如下:

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

(2)MySQL接口程序
MySQL的接口程序MySQLdb,又名MySQL-Python。

>>>import MySQLdb
>>>cxn=MySQLdb.connect(user='root')
>>>cxn.query("CREATE DATABASE test")
>>>cxn=MySQLdb.connect(db='test')
>>>cur=cxn.cursor() #游标对象
>>>cur.execute('CREATE TABLE users(login Int)')

(3)PostgreSQL接口程序
有至少3个接口程序可以访问PostgreSQL:psycopg、PyPgSQL和PyGreSQL。另外PoPy现在已经废弃。
①psycopg

>>>import psycopg
>>>cxn=psycopg.connect(user='pgsql')

②PyPgSQL

>>>from pyPgSQL import PgSQL
>>>cxn=PgSQL.connect(user='pgsql')

③PyGreSQL

>>>import pgdb
>>>cxn=pgdb.connect(user='pgsql')

(4)通用代码
下面的代码就能够在所有接口程序下工作:

>>>cur=cxn.cursor()
>>>cur.execute('SELECT * FROM pg_database')
>>>rows=cur.fetchall()
>>>for i in rows:
            print i
>>>cur.close()
>>>cxn.commit()
>>>cxn.close()

(5)SQLite
pysqlite数据库接口程序,Python2.5中已集成,作为Python2.5的sqlite3模块。
SQLite足够简单,使用文件(或内存)作为后端存储,就像DBM模块做的那样,不需要服务器,也不存在授权问题。
(6)Gadfly
基本兼容SQL的纯Python写成的关系数据库。Gadfly目前版本还不兼容DB-API 2.0。

3、ORM(对象关系管理器)
将SQL表转换为Python类。
Python ORM中最知名的模块是SQLAlchemy和SQLObject。其它的包括:PyDO/PyDO2、PDO、Dejavu、Durus、QLime和ForgetSQL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值