python数据库编程
来源:互联网 发布:js字符串格式化时间 编辑:程序博客网 时间:2024/05/22 09:04
一、前言
关于数据库编程,涉及知识点广而杂,所以我并非一遍就能掌握,这里汲取了我的实践和认识,算是对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数据库编程_sqlite
- python数据库编程_sqlite
- python mysql数据库编程
- python数据库编程
- Python 的数据库编程
- python数据库编程
- 【实例】 python数据库编程
- python数据库编程
- Python数据库编程
- Python数据库编程
- 用Python实现数据库编程
- 用Python实现数据库编程
- 用PYTHON进行数据库编程
- 用Python实现数据库编程
- 用Python实现数据库编程
- Python对Mysql数据库编程
- python----文件、数据库、网络编程
- Python对Mysql数据库编程
- ECS服务器ssh登录提示“Permission denied, please try again”
- Informatica - Audit Scripts
- 第一篇:真二
- WebKit(WKNavigationDelegate)
- MyBatis学习之路(1)_环境搭建
- python数据库编程
- Data Structure(2)---算法时间复杂度
- 云之讯官方测试Demo音频版源码阅读
- [Win32]一个调试器的实现(二)调试事件的处理
- EasyUI validatebox 自定义验证
- NiftyNotification (Android Toast替代品)
- 关于数据修复
- SVN使用总结
- Android动画效果生动有趣的通知NiftyNotification(Android Toast替代品)