V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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

看了 Django4.0 发行说明 感觉有点失望

  •  
  •   wuwukai007 · 2021-09-26 17:57:11 +08:00 · 7261 次点击
    这是一个创建于 934 天前的主题,其中的信息可能已经有所发展或是发生改变。
    31 条回复    2021-10-09 10:52:03 +08:00
    Vegetable
        1
    Vegetable  
       2021-09-26 18:08:00 +08:00   ❤️ 1
    版本号过于激进,Django1.1 的项目迁移到现在几乎可以只改路由。
    zhuangzhuang1988
        2
    zhuangzhuang1988  
       2021-09-26 18:13:44 +08:00
    用爱发电的都这样.
    ila
        3
    ila  
       2021-09-26 18:14:09 +08:00 via Android
    wuwukai007
        4
    wuwukai007  
    OP
       2021-09-26 18:14:11 +08:00
    @zhuangzhuang1988 django 有基金会的。
    redvoilin
        5
    redvoilin  
       2021-09-26 18:15:48 +08:00   ❤️ 1
    web 这块还是 rails 比较好用
    dcalsky
        6
    dcalsky  
       2021-09-26 18:38:10 +08:00
    就图一个 django admin,其他功能几乎不用。
    est
        7
    est  
       2021-09-26 18:46:44 +08:00
    开源项目你抱怨个啥。去贡献啊
    qsnow6
        8
    qsnow6  
       2021-09-26 19:38:48 +08:00
    异步 orm 未必能提高性能
    abersheeran
        9
    abersheeran  
       2021-09-26 20:52:01 +08:00   ❤️ 19
    自从 Django 支持黑命贵,而且公开表示“核心团队都是白人是不好的”的时候我就对它的未来彻底失望了。

    开源项目在我看来应该“唯技术论”,谁技术好谁上,哪怕这个人是个异形,只要他的技术值得,那他就可以进核心团队。至于其他的,谁在乎?难道你长得好看可以给代码加持,性能提升百分之百、错误率下降百分之五十?

    一个开源项目核心团队不把精力放在项目上,而是搞那些有的没的,无论它过去多辉煌,未来一定是个垃圾玩意。
    hysys32
        10
    hysys32  
       2021-09-26 21:01:04 +08:00 via iPhone
    @abersheeran 想起来 notepadplusplus
    stimw
        11
    stimw  
       2021-09-26 21:13:18 +08:00
    @abersheeran #9 正确的说法是开源项目不应该包含乱七八糟的政治正确和扭曲的价值倾向,而不是单纯的“唯技术论”。

    因为“唯技术论”是矛盾的,如果这个团队技术最好的人如果本身给团队带来了无用的政治正确
    (比如黑命贵),或者是扭曲的价值倾向,整烂活搞事情,那应该踢掉他还是接受他呢?按唯技术论,难道应该接受他吗。
    abersheeran
        12
    abersheeran  
       2021-09-26 21:23:37 +08:00
    @stimw 技术团队不管内部如何,以团队名义对外发布的公开文章,我认为不要有任何非技术上的事。带任何非技术的事,说明这个技术团队至少不够纯粹的搞技术。

    就像你说的,假设技术最屌的那个是个白人至上主义者,不管他私人博客里怎么搞,只要他不拿团队账号带私货,我觉得没有任何问题。
    abersheeran
        13
    abersheeran  
       2021-09-26 21:26:22 +08:00
    @hysys32 那就是个反面典型。如果他的作者只在自己私人博客发那些东西,没有任何人可以指责他不该发,最多像骂其他人一样骂回去,但是他非要在软件的发布日志里夹杂私货,这就是纯粹的 xx 。哪怕他发的是正面言论,我也觉得他是个 xx,更何况发的是些谣言。
    TypeError
        14
    TypeError  
       2021-09-26 21:28:40 +08:00 via Android   ❤️ 3
    @abersheeran react 、golang 、GitHub 也搞这些啊,
    只要不妨碍软件开发我就不反对

    关心这些我还不如关心墙是不是又高了
    abersheeran
        15
    abersheeran  
       2021-09-26 21:33:50 +08:00   ❤️ 1
    @stimw 我再多说几句。我认为没有任何价值观或者所谓的政治正确是永远全部正确、永远全部错误,哪怕是反社会人格,从天道角度来看它也有存在的原因,虽然我个人很反对这种我认为不正确的价值观与政治正确,但我认为只要一个东西有很多人支持就必然有存在的原因和价值。不过这也不是我认同反社会的借口,我支持或反对一个价值观,必然是从我自己的利益和思维出发。但客观上来讲那些我反对的东西并不一定没有存在价值,所以你说的这个“扭曲的价值倾向”我认为是不存在的。只能说是“我反对的价值倾向”。这个我是谁?谁来凭自己的喜好定,就不好说了。

    所以我说的“唯技术论”是指技术团队聚在一起的时候只要好好搞你的技术就行了,别的事你们私下怎么搞都没问题,支持或者反对那是另外一回事,但不要污染这个技术团队。
    Lemeng
        16
    Lemeng  
       2021-09-26 22:45:19 +08:00
    围观中,不好说
    NCZkevin
        17
    NCZkevin  
       2021-09-26 23:46:59 +08:00
    看了下文档,感觉 2.1-4.0 几乎没啥大改动,另外 3 的 asgi 基本是残废,这 4.0 真没必要
    neoblackcap
        18
    neoblackcap  
       2021-09-27 03:43:34 +08:00   ❤️ 4
    不是什么都应该是异步的,数据库操作异步,跟线程池有什么区别?又不能提高并发量。本质上只是为了使用者的个人偏好搞异步封装。
    实际上这样的做法,我认为会掩盖了事物的根本,到时候出问题,又得去连接池的地方找问题。看了那么多的其他语言实现,数据库驱动这部分,大家基本上都是连接池的一套,同步操作的
    l4ever
        19
    l4ever  
       2021-09-27 08:47:41 +08:00
    升级主要是为了适配 python 升级
    Python compatibility
    Django 4.0 supports Python 3.8, 3.9, and 3.10. We highly recommend and only officially support the latest release of each series.

    The Django 3.2.x series is the last to support Python 3.6 and 3.7.
    echo1937
        20
    echo1937  
       2021-09-27 08:50:41 +08:00
    其实只是刷了个版本号而已,现在都是学习 Chrome 。
    JoeBreeze
        21
    JoeBreeze  
       2021-09-27 09:18:53 +08:00
    待解放的姜戈
    qW7bo2FbzbC0
        22
    qW7bo2FbzbC0  
       2021-09-27 09:43:14 +08:00
    princelai
        23
    princelai  
       2021-09-27 09:54:36 +08:00
    @abersheeran #12 NBA 火箭队老板就是以个人名义发布的涉港言论,NBA 总裁肖华也只是说支持言论 free,最后呢?国家带头抵制啊,所以你说的个人名义啊,政治正确我觉得都是扯淡,国家层面就不支持你这东西。
    wamson
        24
    wamson  
       2021-09-27 10:08:49 +08:00
    @neoblackcap 异步 IO 和线程池差别大多了,线程切换的消耗比异步大多了。协程就是为了减少切换消耗同时又写得爽的,个人认为后端业务无论如何都不能有阻塞,所有的资源等待操作都应该是异步的。
    neoblackcap
        25
    neoblackcap  
       2021-09-27 11:11:34 +08:00
    @hjahgdthab750 单单官网底下就说明了该数据库驱动是有连接池在底层的。异步调用的需求肯定是有的,但是这不是必须的,python 还有 asyncpg 。

    @wamson 你做过 benchmark 吗?你大量的数据库查询请求是怎么发给数据库的?如果多了要排队,那么跟同步有什么区别?纯粹只是调用的区别嘛,你现在也可以自己简单封装一下,标准库已经有这样的组件可以让你将同步的函数封装成异步的
    sudoy
        26
    sudoy  
       2021-09-27 15:27:33 +08:00
    我记得 nodejs 也支持“黑命贵”
    wamson
        27
    wamson  
       2021-10-02 18:25:51 +08:00 via iPhone
    @neoblackcap 你的观点是数据库操作异步并不能提高并发量。我的论据是,线程切换消耗比较大,异步就不用阻塞了。你想一下,如果我发起了一个数据库查询操作,接着要调用一个 rpc 接口。如果数据操作阻塞了,那 rpc 要等 sql 执行完了才能执行,这就慢了。就算数据库查询在排队,那我 cpu 可以空出来去做别的呀。要明确一点的是,异步肯定是能提高并发量的,不然,也不会还要发明异步 io 了,你说是吧?
    neoblackcap
        28
    neoblackcap  
       2021-10-03 17:33:59 +08:00
    @wamson 你这样说的前提是你的数据库顶得住那么多请求啊,你的数据库明明就只能接收 10 个请求,你这边应用端发 100 个过去,那么你是不是应该有 90 个请求快速返回了,然后报错?切出去 CPU,不就变成用于回来处理这些问题?并不能合理利用 CPU 等待 IO 的时间嘛。要不你说说这个情况如何解决。
    我并不排斥异步,但是我觉得异步要分开场景。数据库请求对于异步的要求我觉得不是那么大。很多数据库顶不住你的大量查询请求。
    haoliang
        29
    haoliang  
       2021-10-03 23:39:14 +08:00
    @neoblackcap 你似乎搞混了 “线程池”跟“连接池”,异步程序也可以利用“连接池”
    neoblackcap
        30
    neoblackcap  
       2021-10-04 00:05:14 +08:00
    @haoliang 请看我 25 楼的回答,我早以指出所谓的异步调用可以用现有的标准库封装线程池实现。
    同时本帖的重点并不是什么异步同步之争,本身问题是基于 Python 环境的。一个底层是线程池封装的异步调用真的会比同步的多线程更高效吗?我表示怀疑
    wamson
        31
    wamson  
       2021-10-09 10:52:03 +08:00
    @neoblackcap “你想一下,如果我发起了一个数据库查询操作,接着要调用一个 rpc 接口。如果数据操作阻塞了,那 rpc 要等 sql 执行完了才能执行,这就慢了。“

    你看看我这个例子,等待 sql 的同时,我可以去做 rpc 调用。同理还可以操作 redis,或者做一些别的 cpu 操作。

    一般来说数据库的总处理能力是要高于需求的,这个是在架构的时候必须要保证的。然后你说的数据库只能接收 10 个请求,但是有 100 个请求发过去的问题。我可以理解成是一个突然的 sql 请求波峰?我在做异步数据库请求时,一般是放到请求队列中,由单独的线程去处理请求队列。具体来说是,主线程异步发起 sql,其实就是放置 sql 请求消息到队列中,子线程消费队列中的 sql 请求消息,然后执行 sql 。此时主线程继续执行下一条代码,sql 执行完毕,子线程回调主线程的 callback 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4022 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.