python数据库编程(1):潦草的开篇
一、前言关于数据库编程,涉及知识点广而杂,所以我并非一遍就能掌握,这里汲取了我的实践和认识,算是对python数据库编程的做一个铺垫吧。在以后的学习过程中会不断地完善数据库编程的知识点,鉴于此,另当难登大雅之堂的小打小闹作罢。
二、DB-API规范
db-api是一个规范,定义了一系列必需的对象和数据库存取方式,为底层数据库提供一致的接口。
DB-API模块属性如下:
apilevel:模块兼容的DB-API版本号
threadsafety:线程安全级别
paramstyle:支持sql语句参数风格
connect():连接数据库
关于ORM:
ORM = Object Relational Mapping
Object是指面向对象的
Relational 是指面向关系数据库
ORM 就是将关系数据库的数据模型变换映射到面向对象的模型的工具
.net中如LINQ to Sql,在python中如SQLAlchemy和SQLObject.
三、connect()函数
connect()方法生成一个connect对象,用于访问数据库,其参数如下:
user:Username
password:Password
host:Hostname
database:DatabaseName
dsn:Data source name
注意并非所有的接口程序都严格按照这种格式,如MySQLdb
import MySQLdb
conn = MySQLdb.connect(host='192.168.0.1',
db='blog',
user='root',
passwd='123',
port=3306,
charset='utf8')
connect()对象方法
close():关闭数据库连接,或者关闭游标对象
commit():提交当前事务
rollback():取消当前事务
cursor():创建游标或类游标对象
errorhandler(cxn,errcls,errval):作为已给游标的句柄
注意,执行close()方法则上述的连接对象方法不能再使用,否则发生异常。commit()、rollback()、cursor()或许更对于支持事务的数据库更有意义。数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。 一旦你完成了数据库连接,关闭了游标对象,然后在执行commit()提交你的操作,然后关闭连接。
游标对象
上面说了connect()方法用于提供连接数据库的接口,如果要对数据库操作那么还需要使用游标对象。
游标对象的属性和方法:
更多相机文档或《python核心编程》
fetchone():可以看作fetch(取出) one(一个),也就是得到结果集的下一行(一行)。
fetchmany(size):可以看作fetch(取出)many(多个),这里的参数是界限,得到结果集的下几行(几行)
fetchall():顾名思义,取得所有。
execute(sql):执行数据库操作,参数为sql语句。
close():不需要游标时尽可能的关闭。
demo代码如下:
#coding=utf-8
import MySQLdb #注意大小写(常写错)
'''连接数据库并创建connect方法对象'''
conn = MySQLdb.connect(host='127.0.0.1',
user='root',
passwd='admin',
db='blog',
port=3306,
charset='utf8')
print conn #
def mysql():
'''创建游标对象'''
cxn = conn.cursor()
sql = '''SELECT * FROM auth_user'''
cxn.execute(sql)
r1 = cxn.fetchone()
r2 = cxn.fetchmany(2)
r3 = cxn.fetchall()
sql = '''create table blog(id int not null primary key auto_increment,
title char(30) not null,
author char(20) null default 'admin'
)'''
cxn.execute(sql)
cxn.close()
conn.commit()
conn.close()
print '===========success!'
if __name__ == '__main__':
print '===========Begin...'
mysql()
页:
[1]