中国领先的IT技术网站
|
|

Python的ORM框架SQLObject 1.1.3发布

SQLObject 1.1.3 发布了,该版本修复了使用 PostgreSQL 的一个bug(SET client_encoding查询增加引号的问题)。

作者:佚名来源:开源中国社区|2011-08-31 13:31

【沙龙】51CTO诚邀您9月23号和多位技术大咖一起聊智能CDN的优化之路,抓紧时间哦!


SQLObject 1.1.3 发布了,该版本修复了使用 PostgreSQL 的一个bug(SET client_encoding查询增加引号的问题)。

SQLObject 是一个流行的Python数据库对象映射框架,映射的规则就是表->类、字段->属性

示例代码:

  1. >>> from sqlobject import * 
  2. >>> 
  3. >>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:'
  4. >>> 
  5. >>> class Person(SQLObject): 
  6. ...     fname = StringCol() 
  7. ...     mi = StringCol(length=1, default=None) 
  8. ...     lname = StringCol() 
  9. ... 
  10. >>> Person.createTable() 

使用SQLObject连接数据库与Python

 

向(大多数)编写SQL说再见

当面向对象编程范例满足大多数数据库的关系范例时,通常会看到对象关系映射。对象关系映射是这两个世界的桥梁。它允许您定义与数据库表对应的类。然后您可以使用这些类及其实例上的方法来与数据库交互,而不用编写 SQL。使用对象关系映射并不意味着不需要知道关系数据库如何工作,而是不必要编写 SQL,从而避免编程错误。

您可以找到一打以上的操作 SQL 数据库的开放源码 Python 包,这还没包括用于连接 Python 与特定数据库的特殊用途模块。SQLObject 是其中最好的模块。它是简单易用的完全对象关系映射包。SQLObject 几乎可以完成编程数据库所需的所有操作。

关于 SQLObject 限制

SQLObject 想让您用面向对象的方式而非关系方式进行思考。这有利于您的理解和您的编程生产率,但不利于性能。毕竟,数据库仍是关系型的。如何标记呼叫过的每个电话号码?使用 SQL,您将使用单个 UPDATE 命令。使用 SQLObject,您需要迭代通过整个结果集,并修改每个对象的 last_call 成员,这是非常低效的。

SQLObject 为开发人员时间牺牲了处理器时间。这通常是好的交易,但甚至在简单的应用程序中,您也可能需要下降一个级别到达 Python 数据库接口,为一些关键路径的操作编写原始 SQL。

【编辑推荐】

  1. 使用JMeter创建数据库(MySQL)测试
  2. 如何用Eclipse连接MySQL数据库(傻瓜篇)
  3. MySQL 5.6终于增加新功能了
  4. 设计实例对比:MySQL vs MongoDB
  5. MySQL索引背后的数据结构及算法原理
【责任编辑:艾婧 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

非常网管——网络工程案例

本书面向企业网络应用需求,详细介绍了Windows网络互联解决方案、中小企业共享上网解决方案、基于ISA Server 2006的代理服务器与防火墙解决...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 学习达标赢Beats耳机