推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
wuwukai007
V2EX  ›  Python

觉得 django ORM 和 sqlalchemy 都不太好用

  •  
  •   wuwukai007 · Nov 25, 2021 · 5789 views
    This topic created in 1806 days ago, the information mentioned may be changed or developed.

    django

    • 不支持 join group by 关键字 要用 filter 和 values 隐式做到
    • 要用 annotate 才能 取别名,否则还要 extra 写字符串
    • 某些函数不支持,比如 date_format
    • extra 比较灵活,但又不支持 join 😯

    sqlalchemy

    • 在 flask 中 使用,会有上下文问题
    • to_dict 还要自己写 ,create 方法没有,必须写 add,commit
    • 写完 sqlalchemy 语句,跟写 sql 感觉没啥区别,
    19 replies  •  2021-12-15 11:34:09 +08:00
    johnsona
    johnsona
    Nov 25, 2021 via iPhone
    1
    嗝
    Trim21
    Trim21
    Nov 25, 2021 via Android
    2
    peewee ?
    johnsona
    johnsona
    Nov 25, 2021 via iPhone
    3
    那就自己写 sql 自己关连接 自己处理 sql 注入 也没什么
    joApioVVx4M4X6Rf
    joApioVVx4M4X6Rf
    Nov 25, 2021
    4
    借楼同问
    sola97
    sola97
    Nov 25, 2021 via Android❤️1
    5
    Python 的 orm 总感觉没有 java 爽
    makelove
    makelove
    Nov 25, 2021
    6
    不满意自己造轮子呢,我是用自己写的 ORM
    我不喜欢 django 这种封装过头的做法
    Kobayashi
    Kobayashi
    Nov 25, 2021 via Android
    7
    @Trim21 peewee 就算了吧,没有数据库迁移支持。另外作者没有支持异步打断,还劝别人使用 eventlet ,这都什么年代了。
    Aksura
    Aksura
    Nov 25, 2021
    8
    sqlalchemy 是有 core 和 orm 两部分的,用 core 写 SQL 也是可以的。
    gjquoiai
    gjquoiai
    Nov 26, 2021❤️1
    9
    天下第一 sqlalchemy 吹来了!
    1. 不知道你说的上下文问题是什么问题,不过 flask-sqlalchemy 这个库会搞的不伦不类的,我更习惯裸用(
    2. Row 有_asdict() 方法,不过序列化和模型最好还是分开; data mapping 模式的 ORM 就是这么个逻辑,有一些库(或者手写也不麻烦)可以提供 active record 的调用方法
    3. flavor 问题,无法置评
    zachlhb
    zachlhb
    Nov 26, 2021 via iPhone
    10
    Django orm 有扩展可以增加 group by 功能的
    zachlhb
    zachlhb
    Nov 26, 2021 via iPhone
    11
    而且 Django orm 里是有 group by 操作的,只是和其他 orm 思路不同罢了,一般 orm 是在查询时就定义 group_by ,而 django orm 是先查询到 queryset 列表,然后在 queryset.query.group_by 参数再来定义分组字段
    limyel
    limyel
    Nov 26, 2021
    12
    @sola97 Java 的 orm 是指 mybatis 吗
    book1925
    book1925
    Nov 26, 2021
    13
    好巧昨天我就在研究这个,不过 python 好像找了一圈没找到 mybatis 这种好用的,也准备勉强试试 sqlalchemy 。。
    hutoer
    hutoer
    Nov 27, 2021
    14
    还有 2 个也可以看下:
    hutoer
    hutoer
    Nov 27, 2021
    15
    ponyorm 、orator
    joApioVVx4M4X6Rf
    joApioVVx4M4X6Rf
    Nov 27, 2021
    16
    @gjquoiai 学会了,老哥你有教程吗,想学一下你平时的牛逼用法(崇拜
    cz5424
    cz5424
    Nov 27, 2021 via iPhone
    17
    无论什么语言都有上下文问题吧,因为都必须先连接数据库
    raynix
    raynix
    Nov 30, 2021
    18
    碰巧我也在比较这两个 ORM ,感觉 Django 容易一些,功能暂时够用
    yanqd
    yanqd
    Dec 15, 2021
    19
    可以关注一下 SQLModel: https://sqlmodel.tiangolo.com/
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1893 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 16:52 · PVG 00:52 · LAX 08:52 · JFK 11:52
    ♥ Do have faith in what you're doing.