2018 年,你选择 Flask 还是 Django? - V2EX
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
bingod
V2EX    Python

2018 年,你选择 Flask 还是 Django?

  •  
  •   bingod 2018-01-08 13:32:39 +08:00 51477 次点击
    这是一个创建于 2834 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在到了 2018 年,后出的 Flask 的人气越来越旺,目前在 GtiHub 有 32200 个 star,而 Django 是 30800 个 star,如果使用 Python 语言,你会选择 Django 还是 Flask, 来作为网站、小程序、App 的后端呢?
    127 条回复    2019-02-16 11:01:31 +08:00
    1  2  
    darkmatter
        1
    darkmatter  
       2018-01-08 13:33:37 +08:00
    说的好,我选择 PHP
    tangwz
        2
    tangwz  
       2018-01-08 13:34:30 +08:00
    18 年应该会试试 gin
    bingod
        3
    bingod  
    OP
       2018-01-08 13:34:54 +08:00
    @darkmatter PHP 一般用哪些 Web 框架?
    HarrisonZ
        4
    HarrisonZ  
       2018-01-08 13:36:10 +08:00 via Android
    18 年试试 golang 吧 gin 很好用
    bingod
        5
    bingod  
    OP
       2018-01-08 13:36:42 +08:00
    @tangwz 刚去看了,性能据说很好,确实很吸引人,也有一试的欲望
    bingod
        6
    bingod  
    OP
       2018-01-08 13:37:31 +08:00
    @HarrisonZ 比 Python 系的都好用吗?配套的东西呢? Gin 有没有比较好的入门材料?
    designer
        7
    designer  
       2018-01-08 13:38:06 +08:00 via iPhone
    我也好纠结
    gjquoiai
        8
    gjquoiai  
       2018-01-08 13:38:33 +08:00   2
    都 2018 年了,该用 sanic 了
    luoyou1014
        9
    luoyou1014  
       2018-01-08 13:38:37 +08:00
    说的好,我用 rails...
    fml87
        10
    fml87  
       2018-01-08 13:40:16 +08:00   1
    自己写着玩的项目用 sanic,公司项目让用啥用啥
    bingod
        11
    bingod  
    OP
       2018-01-08 13:42:02 +08:00
    @designer flask,django,sanic 更纠结了。。。
    wph95
        12
    wph95  
       2018-01-08 13:46:20 +08:00
    sanic 代码质量真的不好
    golang 没泛型 -。-
    ---
    django channel 很有潜力。
    SuperMild
        13
    SuperMild  
       2018-01-08 13:46:56 +08:00
    才发现 sanic,看起来不错!
    Kilerd
        14
    Kilerd  
       2018-01-08 13:48:12 +08:00
    emmmm,我用我自己写的一个 类 koa 的异步框架,反正是 side project 够用。
    notreami
        15
    notreami  
       2018-01-08 13:54:26 +08:00
    嗯,还是上 Spring 吧,为了生态。。。。。
    wellsc
        16
    wellsc  
       2018-01-08 13:58:20 +08:00
    sanic 一点都不 pythonic
    tftk
        17
    tftk  
       2018-01-08 14:16:26 +08:00   4
    都 18 年了,为什么还在讨论 web 框架
    ifsclimbing
        18
    ifsclimbing  
       2018-01-08 14:18:53 +08:00
    Go
    owenliang
        19
    owenliang  
       2018-01-08 14:29:57 +08:00 via Android   2
    都要失业了 还讨论框架。
    keysona
        20
    keysona  
       2018-01-08 14:32:06 +08:00
    并发压力比较的大、业余也成型的会用 go 重写。

    类似后台管理接口这种,会用 flask。怎么方便怎么来。
    rogwan
        21
    rogwan  
       2018-01-08 14:34:56 +08:00 via Android   1
    django 老大哥的历史使命已经完成了,早期的开发者有的已经退休玩音乐去了,flask 后起之秀,学了大哥的长处,结合新时代的需求,sanic 没用过,不好说。
    zhusimaji
        22
    zhusimaji  
       2018-01-08 14:40:23 +08:00
    flask 用的多一点
    sujin190
        23
    sujin190  
       2018-01-08 14:41:03 +08:00
    其实看了下 aiohttp 也不错了
    slgz
        24
    slgz  
       2018-01-08 14:46:09 +08:00   1
    为啥没用人 webpy
    XIVN1987
        25
    XIVN1987  
       2018-01-08 14:49:30 +08:00   1
    这么多选 Go 的,,难道你们用户很多吗(`·ω·)
    lqf96
        26
    lqf96  
       2018-01-08 14:51:18 +08:00
    说来要是 diesel, hyper, serde, iron 成熟了,后端 api 就可以转向 rust 了
    gjquoiai
        27
    gjquoiai  
       2018-01-08 14:59:31 +08:00
    对了对了还有 pylons 套装可以选~
    invzhi
        28
    invzhi  
       2018-01-08 15:10:26 +08:00
    作为一个先后用过 Flask 和 Django 然后转向 Go 的人,嗯,不用 Nginx,编译了直接跑,挺爽的 :D
    est
        29
    est  
       2018-01-08 15:12:28 +08:00   1
    Sanic 渣渣。

    https://zhuanlan.zhihu.com/p/32518153


    @gjquoiai
    @fml87
    @bingod
    @wph95
    @SuperMild
    @wellsc
    @rogwan


    Python 基于 WSGI 的框架都特么渣!
    wellsc
        30
    wellsc  
       2018-01-08 15:15:29 +08:00
    @est #29 666 Sanic 不是基于 WSGI
    est
        31
    est  
       2018-01-08 15:17:32 +08:00
    @wellsc 我说了两件事。一是 Sanic 渣 。二是 flask/django 等只能以 wsgi 接口工作的也很渣。
    wph95
        32
    wph95  
       2018-01-08 15:20:54 +08:00   1
    "代码质量真的不好" 划重点
    sanic 要么就老老实实的抄 flask

    结果搞个四不像出来 sanic 既不遵守 wsgi 也不遵守 asgi 出了问题还得自己 fix。
    虽然 sanic 估计也发现了这个问题,看 5 个月前的版本更惨。

    > Python 基于 WSGI 的框架都特么渣!

    Instagram, Pinterest, Disqus 笑而不语
    permaylau
        33
    permaylau  
       2018-01-08 15:22:35 +08:00 via Android
    因为 WordPress,所以选择 PHP
    wangkai123
        34
    wangkai123  
       2018-01-08 15:23:19 +08:00
    @est “ flask/django 等只能以 wsgi 接口工作”
    低级黑。。。
    xrlin
        35
    xrlin  
       2018-01-08 15:42:48 +08:00
    @invzhi Golang 单文件部署确实挺爽的,资源占用还少。
    est
        36
    est  
       2018-01-08 15:43:27 +08:00
    @wangkai123 请举反例。
    est
        37
    est  
       2018-01-08 15:43:53 +08:00
    @wph95 腾讯 cgi-bin 笑而不语。
    Daming
        38
    Daming  
       2018-01-08 15:45:40 +08:00
    tornado 难道没人用吗?
    wangkai123
        39
    wangkai123  
       2018-01-08 16:00:18 +08:00
    @est https://github.com/django/daphne
    django 是可以上 asgi 的呀?还是我们讨论的不是同一个问题?
    est
        40
    est  
       2018-01-08 16:01:12 +08:00
    @wangkai123 Django Channels 属于 Django 的一部分吧。2333。我的理解是个外挂。
    bingod
        41
    bingod  
    OP
       2018-01-08 16:05:24 +08:00
    @tftk 请问大佬现在该讨论什么?无服务器架构吗?
    @owenliang 这么悲催,互联网已经快完了?
    wannianma
        42
    wannianma  
       2018-01-08 16:06:43 +08:00
    Go 选 Gin, PHP 选 Laravel
    glues
        43
    glues  
       2018-01-08 16:17:09 +08:00
    都 2018 年了还在纠结 web 框架?
    我用汇编,直接操作网卡数据
    ManjusakaL
        44
    ManjusakaL  
       2018-01-08 16:22:44 +08:00
    @est emmmm 老哥又见面了
    gjquoiai
        45
    gjquoiai  
       2018-01-08 16:24:48 +08:00
    @est emmmm 上次关注 sanic 还是去年年初的事,现在去翻了一下大变样啊
    ManjusakaL
        46
    ManjusakaL  
       2018-01-08 16:24:51 +08:00
    Sanic 是真的渣= =
    ASGI 不支持 /WSGI 不支持
    自己实现的 Gunicorn Worker 还日常玄学 504
    做个插件让你哭
    内部耦合严重到爆
    ManjusakaL
        47
    ManjusakaL  
       2018-01-08 16:28:16 +08:00
    @gjquoiai 现在 Sanic 的源码真的一团乱麻。。= =本来一个很不错的思路结果完成这样= =我也很迷
    之前写过一片水文
    https://zhuanlan.zhihu.com/p/32518153
    ixiaohei
        48
    ixiaohei  
       2018-01-08 16:29:02 +08:00
    会 spring 全家桶的笑而不语,我觉得的 python 还是搞 python 的强项比较好,什么科学计算,机器学习,脚本处理等,python 真心爽。开发 web 我还是觉得 java 真心不错,要并发有并发,要生态有生态,强类型语言,用 IDEA 写起来很爽。就是语法有点嗦。
    fy
        49
    fy  
       2018-01-08 16:39:29 +08:00
    基本没用过 flask,tornado 转 aiohttp 用户
    ty89
        50
    ty89  
       2018-01-08 16:47:54 +08:00
    我选 ROR...
    CallMeHoney
        51
    CallMeHoney  
       2018-01-08 16:54:59 +08:00
    说的好 我司用 tornado
    Totato5749
        52
    Totato5749  
       2018-01-08 16:55:31 +08:00
    我选 ROR (笑
    rogwan
        53
    rogwan  
       2018-01-08 16:58:37 +08:00
    @ixiaohei 一版发布,可跑 N 年,java 确实没什么问题。随时应变各个脑筋不清楚的需求变更,又不得不应付的时候,胶水大法省力多了
    Totato5749
        54
    Totato5749  
       2018-01-08 16:58:49 +08:00
    论 star 数,ror 3w8

    另外都 2018 年了,还在讨论性能? 项目实现才是首要吧,性能不够加机器啊,反正便宜不是吗
    g0thic
        55
    g0thic  
       2018-01-08 17:03:30 +08:00
    2018 年了 Python 不都去搞人工智能了吗



    老哥你是用身份证上的头像做的头像么
    KgM4gLtF0shViDH3
        56
    KgM4gLtF0shViDH3  
       2018-01-08 17:04:45 +08:00
    @est #40 django channels 算是是 django 的扩展吧
    stonymoon
        57
    stonymoon  
       2018-01-08 17:08:41 +08:00
    感觉会一个另外一个也能很快就掌握了,纠结的那个时间都能学不少了
    Wichna
        58
    Wichna  
       2018-01-08 17:46:40 +08:00
    小项目用 Flask
    中型项目用 Django 或 Flask
    大型项目用 Java
    atcdef
        59
    atcdef  
       2018-01-08 17:55:52 +08:00
    一直用 flask,django 一听说是大而全,就觉得无爱了,所以连正眼也没看一下。有空时瞧瞧
    codepark
        60
    codepark  
       2018-01-08 17:57:39 +08:00
    难道就我一个用 nodejs 么~
    chenqh
        61
    chenqh  
       2018-01-08 18:11:21 +08:00
    感觉 django 才是最符合 python 哲学的,battery include,开箱即用,如果 python 速度有 nodejs 速度那么快就 好了
    dreampython
        62
    dreampython  
       2018-01-08 18:24:03 +08:00 via iPhone
    学习 python 半年了,就用过 flask,个人感觉很好用,入门很容易; django 以后有机会可以研究下
    huclengyue
        63
    huclengyue  
       2018-01-08 18:25:10 +08:00 via Android
    @ixiaohei 听说可以用 kotlin 写了
    zhuangzhuang1988
        64
    zhuangzhuang1988  
       2018-01-08 18:27:21 +08:00
    django 啊,
    大而全多好,
    用啥 flask
    huclengyue
        65
    huclengyue  
       2018-01-08 18:28:50 +08:00 via Android
    @chenqh 我一直以为 py,比 nodejs 速度快。
    xpresslink
        66
    xpresslink  
       2018-01-08 18:41:07 +08:00
    这个问题有什么可问的,每个框架能存在肯定有优势的场景。
    web 开发本身不是什么高难度的活儿,肯定地说用哪个框架都能干。

    FLASK 和 DJANGO 我都用过,bottle 也用过。选哪个看场景和对框架的熟练程度。
    如果 Python 语言基础不是很精通又想快速撸出来个东西,选 Django
    精通 Python 语言又想稍享受撸的过程选 Flask

    大多数 web 开发都没有什么性能问题,需要性能的开发工作基本上轮不上用 Python 了。
    实现上快速搭建个原型出来快速迭代是选 Python 或 ruby 这类动态语言最常用的场景,
    这肯定要比上来就 java 要少一半以上的代码量和时间的。
    lengyihan
        67
    lengyihan  
       2018-01-08 18:42:12 +08:00 via Android
    php
    lengyihan
        68
    lengyihan  
       2018-01-08 18:42:28 +08:00 via Android
    py 性能不行,
    pynix
        69
    pynix  
       2018-01-08 18:46:51 +08:00
    py 写数据分析,web 用 ror 快。。。。
    jackeylov3
        70
    jackeylov3  
       2018-01-08 18:59:49 +08:00
    狗年,我选择 go 语言
    wujunze
        71
    wujunze  
       2018-01-08 19:15:46 +08:00
    我选择 PHP +Phalcon
    wezzard
        72
    wezzard  
       2018-01-08 19:20:55 +08:00
    PHP
    SlipStupig
        73
    SlipStupig  
       2018-01-08 19:23:04 +08:00
    tornado 跑了三年了,觉得一点没问题
    HarrisonZ
        74
    HarrisonZ  
       2018-01-08 19:44:26 +08:00 via Android   1
    @bingod 主要并发编程很简单,性能也好一些。官方文档足够了
    bingod
        75
    bingod  
    OP
       2018-01-08 20:16:23 +08:00
    @glues 老哥算你狠。。。
    Ziav
        76
    Ziav  
       2018-01-08 20:23:14 +08:00
    说的好,用 Java
    NvSylvanas
        77
    NvSylvanas  
       2018-01-08 20:26:43 +08:00 via iPhone
    Java
    allgy
        78
    allgy  
       2018-01-08 20:28:01 +08:00
    @tangwz
    @HarrisonZ ozzo 不服
    anyfucker
        79
    anyfucker  
       2018-01-08 20:28:27 +08:00
    @slgz 我一直是用 webpy,不过自从作者 2013 年自杀后这框架就没人更新了。。所以今年我把公司原来的 webpy 的项目都改成 tornado 了。
    allgy
        80
    allgy  
       2018-01-08 20:31:37 +08:00
    18 要考虑怎么找女朋友
    mind3x
        81
    mind3x  
       2018-01-08 20:32:33 +08:00 via Android
    乱入一个,有多少人听说过 /用过 JHipster 的?
    ycz0926
        82
    ycz0926  
       2018-01-08 20:38:22 +08:00   1
    有模板的,django
    api,tornado
    统一搞上 pypy。。。。
    ericls
        83
    ericls  
       2018-01-08 21:26:58 +08:00 via iPhone
    如果是 flask 为什么不用 sanic
    lepture
        84
    lepture  
       2018-01-08 2:37:47 +08:00   1
    作 Flask 目成,然是 Flask 呀。今天在 https://lepture.com/en/2018/announcement-of-authlib 提到

    > Flask comes first, Django comes second.
    tmac
        85
    tmac  
       2018-01-08 22:42:49 +08:00 via Android
    @mind3x spring boot 的脚手架
    chengzhoukun
        86
    chengzhoukun  
       2018-01-08 23:14:32 +08:00 via Android
    tornado 吧,对 asyncio 支持不错
    lozzow
        87
    lozzow  
       2018-01-08 23:17:30 +08:00
    @slgz 作者都去世了,很久没维护了
    wingyiu
        88
    wingyiu  
       2018-01-08 23:26:07 +08:00
    django 其他最后都会被开发堆积木对称 django
    renhua
        89
    renhua  
       2018-01-08 23:29:46 +08:00 via iPhone
    2018,为何不用 crow
    billion
        90
    billion  
       2018-01-08 23:31:37 +08:00   1
    你需要知道有一个东西叫做 Sanic,效率是 Flask 的 200 倍,Route 和 Flask 一模一样。
    lepture
        91
    lepture  
       2018-01-08 23:46:13 +08:00
    @billion @ericls route 不是 Flask 的特,Flask 的特是 context 制。
    blless
        92
    blless  
       2018-01-09 00:57:30 +08:00 via Android
    @billion 仔细看过 sanic
    的 benchmark 的人就不会把 200 倍挂嘴上。sanic 接近 lgo 效率是用 mrk (好像是,手机懒得查了)合并 http 请求,另外极其可能只是个测试一个 helloworld。根本没什么参考意义。自己写两个后端服务调用下就知道这东西其实根本没那么玄乎
    fengdra
        93
    fengdra  
       2018-01-09 01:06:57 +08:00 via Android
    现在有 react,vue 之类的,模板引擎都可以放前端,后端用 jsonrpc 提供数据接口就够了
    OldPanda
        94
    OldPanda  
       2018-01-09 03:47:03 +08:00
    如果仅仅是后端,可以用 sanic,前端用用 angular 或者 vue 都可以
    chengxiao
        95
    chengxiao  
       2018-01-09 06:48:06 +08:00
    Django 吧,东西写出来是用的,怎么快怎么方便怎么来啊,大而全没什么不好的
    jimzhong
        96
    jimzhong  
       2018-01-09 07:50:05 +08:00
    小网站用 django,开发效率高。
    hugee
        97
    hugee  
       2018-01-09 08:40:01 +08:00 via Android
    选 php
    pyufftj
        98
    pyufftj  
       2018-01-09 09:39:44 +08:00
    @jackeylov3 你这个脑洞是真的服
    sujin190
        99
    sujin190  
       2018-01-09 09:45:36 +08:00
    @ycz0926 #82 配 pypy 确实快,但是网上似乎没有什么文章介绍这个 gc 啊,实际使用中这个是个很大的问题,内存使用量、停顿都是很大的问题
    huhujin
        100
    huhujin  
       2018-01-09 09:48:08 +08:00
    django 一票,flask 各种 flask-包一装还不是和 django 一样?网站大了还是上 spring 全家桶,生态好.
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2731 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 07:35 PVG 15:35 LAX 00:35 JFK 03:35
    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