声明:
本博客内容来源网上,忘了是从哪里看到的,如果原作者看到,请联系我附上链接,同时对您的付出表示感谢!
新浪微博:@孔令贤HW;
博客地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!
什么是SqlAlchemy?
SqlAlchemy是一个开源的Python组件,提供数据库抽象的功能,屏蔽不同数据库的差异,为用户提供一致的Python对象操作,结构如下:对用户而言,SqlAlchemy有两个重要的组成部分,其一,ORM(Object Relational Map,对象关系映射),负责将数据库中的数据(数据表)与Python的对象链接在一起,以操作对象的形式来完成数据操作;其二,SQL Expression Language SQL解释语言,可以将命令转化为底层数据库支持的操作,是一个独立组件,和ORM一同工作的时候负责将对象操作转化为底层数据库的相关命令。也可以单独使用,获得较高的执行效率。
数据库操作流程
1. 指定数据库引擎(Engine)
Engine在SqlAlchemy负责管理通往数据的连接,相当于底层数据库在SqlAlchemy中的代理,结构如下:Engine是面对用户的数据库接口,DBAPI是DB的API接口。Pool是通向DB的连接池,Dialect代表了底层数据库的类型。
使用SqlAlchemy.create_engine(*args,**kwargs)方法就可以指定数据库引擎了。相关参数如下:
connect_args :连接参数,格式如下:
dialect+driver://user:password@host/dbname[?key=value.]
dialect代表底层数据库类型,如MySql, oracle 等
driver代表数据库驱动,如psycopg2, pyodbc,不填将根据数据库类型使用对应的默认驱动。
之后就是数据库的连接参数:用户名,密码,IP地址,端口,数据库名,以及传递给connect方法的附加参数。
例如,Quantum的 Plugin O