社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
编写可以灵活&高效访问数据库的程序,以python为例。
性能要好:无fd,内存泄漏;
灵活变更:数据库表变更,程序需要变更的地方明确,且改动尽量简单;
备注:互联网产品使用mysql,一般分为线上和线下数据库,需要关注的点也不尽相同,本次以线下离线数据库为例。
![python代码片段1](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-12 下午3.18.23.png)
![python代码片段2](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-12 下午3.18.42.png)
说明
cnt:mysql每次查询的context,每次连接并关闭,无连接池管理。
sql:字符串,自己拼装的sql语句,修改容易出错。
obj_data:sql查询获得的结果集,通过偏移index访问。
缺点
ORM(Object Relational Mapping)
sqlalchemy
使用说明
豆瓣后端使用的orm工具
pip install sqlalchemy
Notice that the Core and raw SQL achieved comparable insertion speed while the ORM is much slower than the other two.
使用sqlalchemy建立数据库和表的例子
![根据类声明创建2张表](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-15 下午2.07.20.png)
![根据类声明创建2张表并添加一些数据](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-15 下午4.58.28.png)
说明
使用sqlalchemy查询表的例子
![查询表的示例](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-15 下午7.31.44.png)
- beego:一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架
jumbo install go
go get github.com/astaxie/beego
生成方法2中的数据表restful web服务
线上例子 : employee,department
![web界面示例1](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-15 下午8.12.05.png)
![web界面示例2](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-15 下午8.11.43.png)
数据库表 + beego可以快速提供json形式的接口
![使用curl简单的访问](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-16 下午2.44.18.png)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!