Django 3.1 发布,支持异步 view 和 middleware - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mimzy
V2EX    Django

Django 3.1 发布,支持异步 view 和 middleware

  •  1
     
  •   mimzy
    mookrs 2020-08-06 11:37:18 +08:00 6266 次点击
    这是一个创建于 1891 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://docs.djangoproject.com/en/3.1/releases/3.1/

    没看到有人发,我来发一下好了

    • 新增 view 和 middleware 的异步支持,可以在 view 上用 async def 了。ORM 的异步支持接下来的版本会继续做
    • JSONField 已经支持所有的数据库,用 MySQL 的想要这个特性可以不再需要 Django-MySQL

    Django 毫无疑问是最好的 Python Web 框架,开发团队也是相当孜孜不倦…

    28 条回复    2020-08-08 08:05:51 +08:00
    ryan123
        1
    ryan123  
       2020-08-06 11:44:01 +08:00
    终于支持异步了
    xiaolinjia
        2
    xiaolinjia  
       2020-08-06 12:01:05 +08:00
    现在 fastapi 也苦于没有异步的 orm 。如果 dj 能做出来的话,那敢情好啊。
    vincexu
        3
    vincexu  
       2020-08-06 12:04:05 +08:00 via Android
    @xiaolinjia tortoise
    johnsona
        4
    johnsona  
       2020-08-06 12:15:34 +08:00
    django 牛逼,flask,自己体会
    cxh116
        5
    cxh116  
       2020-08-06 12:20:30 +08:00
    Django’s ORM, cache layer, and other pieces of code that do long-running network calls do not yet support async access. We expect to add support for them in upcoming releases. Async views are ideal, however, if you are doing a lot of API or HTTP calls inside your view, you can now natively do all those HTTP calls in parallel to considerably speed up your view’s execution.

    https://docs.djangoproject.com/en/3.1/releases/3.1/


    重要的 ORM 不支持,太鸡肋了.继续观望!
    littleb
        6
    littleb  
       2020-08-06 12:52:48 +08:00
    又被我抓住了!
    littleb
        7
    littleb  
       2020-08-06 12:52:59 +08:00
    束手就擒吧
    Trim21
        8
    Trim21  
       2020-08-06 13:01:09 +08:00 via Android   1
    @xiaolinjia 用 sqlalchemy,然后用 encode 写的 databases 来链接数据库
    Trim21
        9
    Trim21  
       2020-08-06 13:02:41 +08:00 via Android
    @Trim21 然后 migration 什么的就可以用 sqlalchemy 的周边工具了,在 fastapi 里面读写数据库也是异步的
    mimzy
        10
    mimzy  
    OP
       2020-08-06 13:08:47 +08:00
    @cxh116 #5 ORM 的代码量最大 https://github.com/andrewgodwin/deps/blob/async/draft/0009-async.rst#the-orm 改动起来应该比较需要时间,按之前的愿景应该是在 Django 3.2/4.0 实现 https://arunrocks.com/a-guide-to-asgi-in-django-30-and-its-performance/#django-evolves
    SearchDream
        11
    SearchDream  
       2020-08-06 13:11:46 +08:00 via iPhone
    JSONField 盼了好久了 :)
    mimzy
        12
    mimzy  
    OP
       2020-08-06 13:12:24 +08:00
    @Trim21 #8 习惯了 Django ORM,SQLAlchemy 总觉得有种说不出的感觉…搞得我现在的 FastAPI 项目一直在用 databases 写原生 SQL [捂脸]
    wuwukai007
        13
    wuwukai007  
       2020-08-06 13:54:35 +08:00 via Android
    15 年如一日,稳定发布,就冲这个值得用,用的放心
    111111111111
        14
    111111111111  
       2020-08-06 14:18:53 +08:00
    @mimzy 那为啥没用起来 tortoise-orm 呢,异步支持 + django orm 风格
    jenlors
        15
    jenlors  
       2020-08-06 14:36:11 +08:00
    jenlors
        16
    jenlors  
       2020-08-06 14:39:09 +08:00
    这 markdown,尴尬。。。
    mimzy
        17
    mimzy  
    OP
       2020-08-06 14:40:44 +08:00 via Android
    @111111111111 主要是没时间研究,比较信赖 encode 的产品就用 databases 了,回头试试 tortoise-orm
    heyjei
        18
    heyjei  
       2020-08-06 14:46:12 +08:00
    和 laravel 比,大家会选哪个?

    一直用的都是 laravel,想尝试一下 django
    tabris17
        19
    tabris17  
       2020-08-06 14:47:13 +08:00
    DAL 没有异步,这种异步有啥用?
    mimzy
        20
    mimzy  
    OP
       2020-08-06 15:10:12 +08:00
    @tabris17 #19 毕竟有比没有强啊…#5 贴的 release notes 也说了,view 里如果有网络请求就可以充分利用异步特性了。不爽同步的 ORM 其实也可以替换成第三方的,当然都用 Django 了不用它的 ORM 这个太得不偿失了…
    chengxiao
        21
    chengxiao  
       2020-08-06 17:37:07 +08:00
    改写 Golang 一年了,我快想死 Django 的 ORM 了
    wellsc
        22
    wellsc  
       2020-08-06 17:39:18 +08:00
    @chengxiao 我还有点怀念 Python 的语法
    waytwoex
        23
    waytwoex  
       2020-08-06 17:39:28 +08:00
    orm 没异步,还是差点意思。
    相比起来,JSONField 全版本支持真的更吸引人。
    love
        24
    love  
       2020-08-06 20:53:43 +08:00 via Android
    @tabris17 dal 为啥要异步?有啥常用场景
    feiniu
        25
    feiniu  
       2020-08-06 22:55:23 +08:00 via iPhone
    一直用的 databases,感谢大伙让我知道了 tortoise
    dcalsky
        26
    dcalsky  
       2020-08-07 01:24:28 +08:00 via Android
    已升级。
    xinhaiw
        27
    xinhaiw  
       2020-08-07 12:20:16 +08:00 via iPhone
    .Net core 你慢慢抄
    37Y37
        28
    37Y37  
       2020-08-08 08:05:51 +08:00   1
    正好用到 JSONField,翻译了下官网顺便解决了出现的问题,写了个文章给有需要的朋友参考:
    https://blog.ops-coffee.cn/s/uKPmc39C2Ysi_8J9ADUoUg
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2857 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 00:26 PVG 08:26 LAX 17:26 JFK 20:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86