python数据库编程(1):潦草的开篇
来源:互联网 发布:沈阳沐洋软件 编辑:程序博客网 时间:2024/05/01 16:52
一、前言
关于数据库编程,涉及知识点广而杂,所以我并非一遍就能掌握,这里汲取了我的实践和认识,算是对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 MySQLdbconn = 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-8import MySQLdb #注意大小写(常写错)'''连接数据库并创建connect方法对象'''conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='admin', db='blog', port=3306, charset='utf8')print conn #<_mysql.connection open to '127.0.0.1' at 25ed738>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()
- python数据库编程(1):潦草的开篇
- mars视频的潦草总结
- 入睡时分,夜已深,潦草文笔记下博客开篇之日
- Python 的数据库编程
- 数据库(1)-开篇
- 1 shell编程小结---开篇
- 数据库开篇
- Python开篇
- Python-开篇
- python开篇
- python 开篇
- 潦草的JTAG下载过程分析『原创』
- 潦草,长远
- 面向对象的asp编程之一开篇
- 面向对象的asp编程之一开篇
- 开篇语:我眼中的编程
- 《编程珠玑》习题练习In Python——第一章 开篇
- C 编程第1篇---开篇介绍
- [LeetCode]Search in Rotated Sorted Array
- ADT算法
- 【iOS】iOS 之 自定义Popover(弹出窗口)
- Spring中的注解
- sqoop的安装
- python数据库编程(1):潦草的开篇
- Head First HTML & CSS 学习笔记(1)
- c#在paient事件中绘制无效的解决办法
- css的派生选择器
- BCM wifi分析
- ubuntu12.04 安装Eclipse
- Python 模块学习 logging(2)
- 一篇不错的Hadoop介绍
- hdu 4651 Partition (利用五边形定理求解分割数)