sqlalchemy ORM 部分, 对于开发者(使用者), 手动工作那么多?

2016/12/30

描述

以前一直用sqlalchemy(还有封装在sqlalchemy之上的Elixir), 对别的ORM也不太了解, 最近接触了Django ORM, 瞬间觉得写起来好舒服

对于sqlalchemy orm, 手动工作还是蛮多的( anyway, 为了深入了解 sqlalchemy, 连 active record 都做了了解 )

有时候写多了, 总觉得有点小烦, 最讨厌的是:

  1. 定义多对多关系时, 总要手动取定义一张中间表, 只有一对多对多还好, 但是多了真心烦

  2. 使用了Elixir, 写ORM总算是舒服了很多, 但是这货早就不维护了, 风险较大

是否有一种使用sqlalchemy的愉悦的方式( 最佳实践 )?

// 听说sqlalchemy可以写成 active record 那种样子, 没有做过深入了解
// 另外, sqlalchemy core 部分, 我相信是没有人使用它的吧? ( 不了解 core 存在的意义 )

阅读 3.4k
3 个回答

推荐

看来你是问对人了, 推荐你一个用起来很爽的 orm : orator : 链接:

语法参考

Retrieving all models

users = User.all()

Retrieving a record by primary key

user = User.find(1)

print(user.name)

Querying using models

users = User.where('votes', '>', 100).take(10).get()

for user in users:

    print(user.name)
count = User.where('votes', '>', 100).count()

如果你知道 laravel 的话, 会发现, 这货就是 laravel/eloquent 的python 版本, 简直不要太爽

我用flask直接上这个玩意儿, 用爬虫写数据库也直接用用他, 小巧灵活, 方便易用

django orm封装的更好,而且文档写的也是最好的。但是sqlalchemy在替他项目下好像用途更加广泛,而起我觉得没那么重。

或许考虑一下peewee

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进