Python论坛  - 讨论区

标题:[python-chinese] 哪位兄弟给对比一下SQLAlchemy与SQLObject的差异吧!

2007年01月30日 星期二 10:46

Jamsa zhujiemao在126.com
星期二 一月 30 10:46:50 HKT 2007

框架太多选起来头痛?

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 12:28

yi huang yi.codeplayer在gmail.com
星期二 一月 30 12:28:46 HKT 2007

On 1/30/07, Jamsa <zhujiemao at 126.com> wrote:
>
> 框架太多选起来头痛?
>

sqlobject
易用一些,因为它自动完成了一些事情,不过当你处理复杂一些的问题时,你会发现很痛苦,因为你无法完全掌控关系数据库,无法使用关系数据库的思维进行数据模型的设计。
sqlalchemy 始终坚持清晰的原则,对于简单的问题,你会发现你需要比 sqlobject 写更多的代码。
都有比较好的文档(sqlalchemy的文档简直是perfect),看看文档应该很快能体会到这种区别。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070130/eaae3236/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 12:31

yi huang yi.codeplayer在gmail.com
星期二 一月 30 12:31:03 HKT 2007

另外使用 sqlalchemy 时还有一种开发模式是,直接设计关系数据库,sqlalchemy 中动态对表的结构进行内省,然后进行 or 映射。
如果你喜欢直接设计关系数据库,那就选 sqlalchemy 吧。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070130/9f6c3073/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 12:37

Zoom.Quiet zoom.quiet在gmail.com
星期二 一月 30 12:37:29 HKT 2007

On 1/30/07, yi huang <yi.codeplayer在gmail.com> wrote:
> 另外使用 sqlalchemy 时还有一种开发模式是,直接设计关系数据库,sqlalchemy 中动态对表的结构进行内省,然后进行 or 映射。
> 如果你喜欢直接设计关系数据库,那就选 sqlalchemy 吧。
>
简单的说,就是懒人使用 SQLObject, 勤劳勇敢的使用 SQLAlchemy;
嗬嗬嗬,即:
有深度SQL经验的,最好使用 SQLAlchemy;
有JAVA Hibernate 经验的最好使用 SQLObject

> --



-- 
'''Time is unimportant, only life important!
http://zoomquiet.org
blog在http://blog.zoomquiet.org/pyblosxom/
wiki在http://wiki.woodpecker.org.cn/moin/ZoomQuiet
scrap在http://floss.zoomquiet.org
douban在http://www.douban.com/people/zoomq/
____________________________________
Pls. use OpenOffice.org to replace M$ Office.
     http://zh.openoffice.org
Pls. use 7-zip to replace WinRAR/WinZip.
     http://7-zip.org/zh-cn/
You can get the truely Freedom 4 software.
'''

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 13:05

yi huang yi.codeplayer在gmail.com
星期二 一月 30 13:05:05 HKT 2007

>
> 有JAVA Hibernate 经验的最好使用 SQLObject
>

不对吧,sqlalchemy 和 hibernate 风格很像的。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070130/b140acec/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 13:11

Jamsa zhujiemao在126.com
星期二 一月 30 13:11:22 HKT 2007

我本人是做Java的。SQLAlchemy的文档真的做得很好。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 20:18

swordsp sparas2006在gmail.com
星期二 一月 30 20:18:30 HKT 2007

On 1/30/07, Zoom. Quiet <zoom.quiet at gmail.com> wrote:
>
> On 1/30/07, yi huang <yi.codeplayer at gmail.com> wrote:
> > 另外使用 sqlalchemy 时还有一种开发模式是,直接设计关系数据库,sqlalchemy 中动态对表的结构进行内省,然后进行 or 映射。
> > 如果你喜欢直接设计关系数据库,那就选 sqlalchemy 吧。
> >
> 简单的说,就是懒人使用 SQLObject, 勤劳勇敢的使用 SQLAlchemy;


在 ORM 模型方面,SQLObject 遵循的是较为简明的 Active Record 模式(和 Rails 一样),而 SQLAlchemy
是比较灵活和强大的 Data Mapper 模式,这大概是二者最为本质的区别。
Active Record 模式在进行简单的操作时更为简洁和直观,所以很多人认为 SQLObject 更为 pythonic,尤其适合小型 web
开发。
但 Data Mapper
模式在映射的表达能力、对象状态的管理、对遗留数据库的适应能力上都有先天的优势,在系统复杂时也更适合组织层次分明的代码。而且,在底层的 Data
Mapper 模式之上再封装成 Active Record 模式(或者其它模式)的接口也很容易,SQLAlchemy
社区中已经有了类似的实现(Active Mapper)。

SQLObject 毕竟历史长些,经受了时间考验的代码成熟度可能要高些(从版本号也可以看出 SQLAlchemy 目前定位还很低调)。
但在功能上可以说 SQLAlchemy 已经远远的超过了 SQLObject ,几乎没有后者能做而前者不能做的事。

而且 SQLObject 的开发似乎最近一两年也进入了瓶颈,作者(Ian Bicking)同时活跃于许多社区项目中,早些时候还抛出了 SQLObject
2 的计划,可能在项目本身投入的精力会少些。
另一方面,SQLAlchemy 却得到了社区上下的鼎力扶持,开发也相当活跃,从长远看还是投资在这边比较合算。

TurboGears 在线文档中也专门讨论了两者的比较:
http://docs.turbogears.org/1.0/SQLObjectVsSQLAlchemy

嗬嗬嗬,即:
> 有深度SQL经验的,最好使用 SQLAlchemy;
> 有JAVA Hibernate 经验的最好使用 SQLObject


习惯 Hibernate 的肯定会喜欢 SQLAlchemy,Java 之外这是我见过最像 Hibernate 的 ORM 框架了(NHibernate
不算)。
倒是有过 RoR 经验的可能会觉得 SQLObject 比较亲切。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070130/21a28263/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 20:19

swordsp sparas2006在gmail.com
星期二 一月 30 20:19:47 HKT 2007

On 1/30/07, Jamsa <zhujiemao at 126.com> wrote:
>
> 我本人是做Java的。SQLAlchemy的文档真的做得很好。
>

的确,Hibernate 和 SQLAlchemy 的文档都可称开源项目的典范。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070130/46195baf/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 21:39

yi huang yi.codeplayer在gmail.com
星期二 一月 30 21:39:06 HKT 2007

>
> 在 ORM 模型方面,SQLObject 遵循的是较为简明的 Active Record 模式(和 Rails 一样),而 SQLAlchemy
> 是比较灵活和强大的 Data Mapper 模式,这大概是二者最为本质的区别。
> Active Record 模式在进行简单的操作时更为简洁和直观,所以很多人认为 SQLObject 更为 pythonic,尤其适合小型 web
> 开发。
> 但 Data Mapper 模式在映射的表达能力、对象状态的管理、对遗留数据库的适应能力上都有先天的优势,在系统复杂时也更适合组织层次分明的代码。而且,在底层的
> Data Mapper 模式之上再封装成 Active Record 模式(或者其它模式)的接口也很容易,SQLAlchemy
> 社区中已经有了类似的实现(Active Mapper)。
>
> SQLObject 毕竟历史长些,经受了时间考验的代码成熟度可能要高些(从版本号也可以看出 SQLAlchemy 目前定位还很低调)。
> 但在功能上可以说 SQLAlchemy 已经远远的超过了 SQLObject ,几乎没有后者能做而前者不能做的事。
>
> 而且 SQLObject 的开发似乎最近一两年也进入了瓶颈,作者(Ian Bicking)同时活跃于许多社区项目中,早些时候还抛出了
> SQLObject 2 的计划,可能在项目本身投入的精力会少些。
> 另一方面,SQLAlchemy 却得到了社区上下的鼎力扶持,开发也相当活跃,从长远看还是投资在这边比较合算。
>

说得好哇,其实感觉这么多开源库都是那么几个牛人搞出来的,好像 sqlalchemy、myghty、mako 的作者就是同一个人!

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070130/e299344b/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年01月30日 星期二 23:38

gashero harry.python在gmail.com
星期二 一月 30 23:38:29 HKT 2007

说句题外话,我的博客上面有SQLObject的中文文档,而那个SQLA*...还不知有没有。偶是懒人。

-- 
从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
我愿为那一刻的温暖去拼,可是谁愿意接受?

欢迎访问偶的博客:
http://blog.csdn.net/gashero

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号