当用 django.orm 时,怀念 sqlalchemy

2016-03-20 20:12:31 +08:00
 thinker3
写过一点 flask ,用过 sqlalchemy ,发现用这个aldjemy可以在 django 中使用 sqlalchemy

https://engineering.betterworks.com/2015/09/03/sqlalchemy-and-django/
5171 次点击
所在节点    Python
16 条回复
clino
2016-03-20 20:21:52 +08:00
django orm 不好在哪里?
tanywei
2016-03-20 20:38:11 +08:00
哈哈 ,没啥大区别吧?
geeklian
2016-03-20 21:22:01 +08:00
django orm 1.9 开始内置了对 postgre 的 jsonfield 支持,感觉 sqlalchemy 没啥特别吸引人的地方了。
timonwong
2016-03-20 21:53:19 +08:00
django 也没有那么差啦,除了 field__operation 还有要不要用 raw sql 这些神烦
neoblackcap
2016-03-21 00:03:50 +08:00
@geeklian SQLAlchemy 有多态, Django Orm 没有。
Django ORM 能做的 SQLAlchemy 都能做,问题就是 SQLAlchemy 功能太强大,又不是 Active Record 而是 Data Mapper 。学习曲线我个人感觉是非常陡峭的。
gkiwi
2016-03-21 00:26:09 +08:00
刚用 django.orm 时候确实不习惯,觉得还是 sqlalchemy 大法好,因为刚开始发现 django.orm 有些事情不好做,不过后来写 django.orm 习惯了,就觉得没啥了。
真正想吐槽的是 django template 天呐!早知道就换了 jinja2 了!!!
dcoder
2016-03-21 00:34:39 +08:00
@gkiwi
Django template 主要槽点是啥
另外, Django 可以上 Jinja2 啊: https://docs.djangoproject.com/en/1.9/topics/templates/
alexapollo
2016-03-21 00:37:10 +08:00
真觉得 sqlalchemy 用起来不舒服,相比 django orm 来说
zonghua
2016-03-21 01:02:40 +08:00
Django Admin 简直要上天啊
gkiwi
2016-03-21 03:06:06 +08:00
@dcoder django template 在于自建语法。它为了不在 template 引入 python 代码(这个我无比支持),『洁身自好』太过了,以至于连最基本的加减乘除, dict key 取值,切片 这些最 python 的东西都需要 buildin templatetags 和自建 tags 来支持,累到不行

jinja2 能是能上,但是在用 django template 之前我没想到有那么恶心,已经走上这条路了。
dcoder
2016-03-21 04:11:15 +08:00
@gkiwi
哈哈,回头是岸啊
Jinja2 很多地方通用的,挺好的. 成本不高的话,可以转去 Jinja2.
tennix
2016-03-21 09:58:09 +08:00
没记错的话 SQLAlchemy 和 jinja 都是受 Django 启发做的。 Django 的 ORM 和 Template 很好用,但是只能在 Django 里面使用,于是就有人把 ORM 和 Template 抠出来做成了 SQLAlchemy 和 Jinja ,所以通用性和专业性上肯定比集成在 Django 里面的 ORM 和 Template 好用
wingyiu
2016-03-21 10:19:28 +08:00
@tennix jinja 是 SA 不是
gkiwi
2016-03-21 11:32:41 +08:00
@dcoder 之前我以为只能单 template engine (在 1.8 之前确实只能如此),问题就很直接,就是第三方库怎么。后来发现支持多 engine loader 就不是问题了,已经在路上,写了太多了,不动了暂时~~
neoblackcap
2016-03-21 15:36:05 +08:00
@tennix SQLAlchemy 作者写了多年的 Java 跟 SQL ,如果讲道理的话,应该是参考 Hibernate 。
shooter
2016-04-21 18:36:20 +08:00
有些方法反直觉 处理 Exception 的时候 特别多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/264969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX