V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mimzy
V2EX  ?  Django

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

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

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    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   ·   我们的愿景   ·   实用小工具   ·   2790 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:44 · PVG 22:44 · LAX 07:44 · JFK 10:44
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com