sqlalchemy最大的问题是:文档太太太太太太太罗嗦。
我搞过把整个sa复制一份到项目里,一边改源代码一边用。在删除大量注释以后,总算看懂作者到底在干什么。作者给每个公开函数都写了一大堆docstring。有的函数实现就一行“self.xx = xx”,他也能罗嗦一屏幕注释出来。
由于python代码比较好读,我把注释删掉很多之后,看出整个构架还是不错的。具体的思路和java hibernate那一套差不多。另一个简单的orm库peewee现在遇到瓶颈了也在重写。估计以后会慢慢向sa的方向走近一点。
现在,orm的主要功能已经从让语法更舒服,慢慢转向数据库后端抽象层,使一套代码能移植多个数据库了。比如可以开发机上用sqlite开发,然后部署到prodction用pgsql。就这一点我觉得还是有存在意义的。
【 在 chaleaoch (冯斯特洛) 的大作中提到: 】
: 1. sqlalchemy好用吗?
: 我觉得难用的一bi.
: 1.1 之前用django orm 想要一个功能,不需要考虑sql怎么写,很流畅的就写出来了.
: 1.2 现在用sqlalchemy, 需要先想sql怎么写,然后想这个sql如何转换成sqlalchemy.
: 想变成django orm中的as_dict 费死劲.
: 各种relationship难用的要死.
: 2. 有没有使用sqlalchemy的比较大型的开源web项目,我想学习学习.
: 3. 请教一个问题, user,group,ugm2m三张表
: 需求,
: 3.1 如果我想user.groups.filter 必须定义成lazy='dynamic'
: 3.2 但是有时候我需要user.groups直接出结果, 就得定义成lazy='select'或其他(楼主目前遇到的情况适合用select)
: 3.3 如果定义两个relationship,会出问题. --> 每次做关联添加,关联表会添加两条记录.
: 问题3 不知道说清楚了没...
: 谢谢...