python web framework 哪个更适合上手? - 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
geeti
V2EX    Python

python web framework 哪个更适合上手?

  •  
  •   geeti 2016-06-03 03:13:37 +08:00 7493 次点击
    这是一个创建于 3500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从来没弄过 web application ,想玩玩。貌似非常流行的有 flask , django,pyramid 等。 哪个更适合个人开发者拿来玩玩?

    另外一个问题,这些 framework 都是需要 wsgi 来连接 python 和 httpd 么?

    49 条回复    2016-06-07 18:00:23 +08:00
    SlipStupig
        1
    SlipStupig  
       2016-06-03 03:15:33 +08:00
    tornado 性能高而且框架轻便
    WangYanjie
        2
    WangYanjie  
       2016-06-03 03:43:38 +08:00
    django 简单,基本包括所有你需要的功能
    YUX
        3
    YUX  
    PRO
       2016-06-03 03:57:55 +08:00   1
    flask 最符合我直觉 先没必要考虑 wsgi 什么的
    可以参考用我这个 Docker 来部署 在你的应用目录建一个 Dockerfile 写上一行
    FROM yuxio/flask-python351
    就能一键部署你的 flask 了.

    https://hub.docker.com/r/yuxio/flask-python351/
    YUX
        4
    YUX  
    PRO
       2016-06-03 04:02:01 +08:00   1
    我之前也尝试用过 Django 我说一下我的感受吧, 就是你要去学习怎么用它. Django 有很多很棒的特性使用起来会很方便(如果你学会了怎么用的话) 可能一个礼拜能入个门
    flask 五分钟入门吧 一礼拜都能起飞了
    ShiHou
        5
    ShiHou  
       2016-06-03 04:25:40 +08:00
    easy : flask
    normal : django
    hard : tornado
    hell : &#*@!(%^*#&@*%&
    clino
        6
    clino  
       2016-06-03 07:33:13 +08:00 via Android
    uliweb
    jamiesun
        7
    jamiesun  
       2016-06-03 07:38:49 +08:00
    没有人提到 twisted+cyclone ,我用的正 high
    simapple
        8
    simapple  
       2016-06-03 07:55:59 +08:00
    还是 django , web 开发该的都有
    aabbccli
        9
    aabbccli  
       2016-06-03 08:11:23 +08:00   1
    django: 组件齐全,开箱即用,适合通用网站开发
    tornado: 基于 EPOLL 实现的异步框架,适合做 API 服务
    flask: 没用过
    j3n5en
        10
    j3n5en  
       2016-06-03 08:33:44 +08:00 via Android
    有其他语言后端经验的话 Flask , 0 入门 django ,,,,我是这样觉得的
    zjgsamuel
        11
    zjgsamuel      2016-06-03 08:41:00 +08:00
    全部都撸 总有一款适合你~~
    duobei
        12
    duobei  
       2016-06-03 08:51:05 +08:00
    那就全撸一遍,看那个对眼呗
    geek123
        13
    geek123  
       2016-06-03 08:53:13 +08:00
    @geeti

    我们有 flask 和 django 的免费内容提供,在线互动学习的,你可以体验感受一下他们,看哪个更适合你。


    http://www.hubwiz.com/course/?type=Python
    keysona
        14
    keysona  
       2016-06-03 09:06:39 +08:00
    @YUX 受用!
    加上 git 是否比较好?
    配置文件什么的都仍一个仓库,服务器部署好像会方便一点。
    x8888k
        15
    x8888k  
       2016-06-03 09:23:29 +08:00
    @geek123 学完之后放弃了 python 选择 php
    Sharuru
        16
    Sharuru  
       2016-06-03 09:26:48 +08:00
    最容易上手的不应该是 Web.py 么……
    fy
        17
    fy  
       2016-06-03 09:27:59 +08:00
    flask
    flask
    flask
    重要的事情说三遍
    成为老司机之后,我觉得 tornado 挺不错的。
    https://github.com/fy0/fpage
    这是我的 tornado 脚手架项目,做了这么多差不多终于把 tornado buff 到了 flask 的易用性
    所以还是 flask 适合入门
    ipconfiger
        18
    ipconfiger  
       2016-06-03 09:39:01 +08:00
    tornado 并不是 hard, 而是有太多东西需要你自己 DIY 而已
    新手难免就会觉得, 啊, 要我自己写啊?没写过, 怎么办?
    老司机就不一样了, 自己三五分钟十几行代码就解决的事情, 等你配置过去配置过来半天我都写完了, 还费那事干嘛
    lerry
        19
    lerry  
       2016-06-03 09:39:46 +08:00
    lovepython
        20
    lovepython  
       2016-06-03 10:04:28 +08:00   1
    你们回答的完全不对啊。

    首先框架来说
    难易程度 django < flask < tornado (个人这么认为, django 因为什么都具备,所以才简单)
    功能完备性 flask = tonado < django
    diy 精神 django < flask = tornado


    再说 wsgi 的问题, wsgi 是 http 请求到你框架的入口,只有 tornado 默认不是这种方式。


    wsgi + 框架(学名是 application ) 是咱一般说的 web 应用。 只有框架的话没啥鸟用(虽然框架自带 wsgi 的服务,但不能用于生产)


    tornado 是特殊形式,不是常规的 wsgi + application,但是也可以转换成常规形式。


    wsgi 是一种协议,具体实现有 Gunicorn , uWSGI , Waitress
    czwen1993
        21
    czwen1993  
       2016-06-03 10:08:45 +08:00
    flask 轻量级
    aljun
        22
    aljun  
       2016-06-03 11:38:27 +08:00 via iPhone
    Jolla
    onestar
        23
    onestar  
       2016-06-03 11:55:17 +08:00
    flask 好用
    xiaomayi0323
        24
    xiaomayi0323  
       2016-06-03 11:56:50 +08:00
    bottle +1
    julyclyde
        25
    julyclyde  
       2016-06-03 12:01:14 +08:00
    基本上就 flask 和 django/ulipad 这两个
    bottle 貌似没有插件机制
    R4rvZ6agNVWr56V0
        26
    R4rvZ6agNVWr56V0  
       2016-06-03 12:07:22 +08:00
    flask 吧 组件和概念不多不少,恰到好处
    honmaple
        27
    honmaple  
       2016-06-03 12:07:24 +08:00
    flask 插件质量有些参差不齐
    yamada
        28
    yamada  
       2016-06-03 13:54:13 +08:00
    有轻微强迫症的表示不喜欢糊一堆插件上去(而且还有不少需要第三方的,质量也不敢有保证),所以学了一周 flask 后转 django 了
    rapospectre
        29
    rapospectre  
       2016-06-03 17:28:48 +08:00
    最快拿来用: flask ;一个 .py 搞定所有(当然 tornado 也可以一个 .py 搞定, 不过入门感觉 flask 更快)。

    有比较完整的目录结构和开发模式的还是 Django 。楼主你如果想写比较大的工程还是先用 Django 吧,目录分层什么的比较清晰。反正我们拿 tornado 、 flask 什么的写大点的工程最后也是自己攒一套跟 Django 一样的目录和功能。
    rapospectre
        30
    rapospectre  
       2016-06-03 17:29:47 +08:00   2
    关于 wsgi 你可以参考下我写的文章:

    浅谈 cgi 、 wsgi 、 uwsgi 与 uWSGI : http://www.rapospectre.com/blog/31
    skydiver
        31
    skydiver  
       2016-06-03 17:32:36 +08:00
    @rapospectre 打开以后是个白页
    rapospectre
        32
    rapospectre  
       2016-06-03 17:39:10 +08:00
    @skydiver 啊?我这里打开没啥问题啊。有可能是没加载出来,服务器带宽比较小,见谅
    DaCong
        33
    DaCong  
       2016-06-03 18:26:27 +08:00 via iPad
    我觉得最简单上手的是 web2py ,但是限制太多,太重,用过一段时间后用了 flask
    chaleaoch
        34
    chaleaoch  
       2016-06-03 18:40:30 +08:00
    django
    zhizhongzhiwai
        35
    zhizhongzhiwai  
       2016-06-03 18:48:03 +08:00
    看那么多人,推荐 django 和 tornado , 没想到傻 13 真多!
    linuxchild
        36
    linuxchild  
       2016-06-03 20:23:40 +08:00 via Android
    没有接触别的, django 让我觉得。。。后台几乎不用自己写
    Rand01ph
        37
    Rand01ph  
       2016-06-03 20:38:02 +08:00
    @zhizhongzhiwai 请问有什么为题吗
    kran
        38
    kran  
       2016-06-03 21:01:53 +08:00 via Android
    @clino 难得有人关注呀
    aljun
        39
    aljun  
       2016-06-03 21:18:12 +08:00 via iPad
    Django ,
    Pure88
        40
    Pure88  
       2016-06-03 21:39:25 +08:00
    自己基于 web.py 撸了一个最佳实践,做一个 restful 后台是没什么问题的。
    https://github.com/Yaoxin/improved_webpy
    orm 部分参考了廖大的
    clino
        41
    clino  
       2016-06-03 22:27:32 +08:00
    @kran 我可是仅有的几个贡献者之一啊...呵呵
    kran
        42
    kran  
       2016-06-03 22:43:42 +08:00 via Android
    @clino 如果我还用 python 的话,会选这个框架
    geeti
        43
    geeti  
    OP
       2016-06-04 03:05:14 +08:00
    @rapospectre 谢谢。你的这篇文章我前几天就读过,把*wsgi 的各种区别都了解了。
    ayaseangle
        44
    ayaseangle  
       2016-06-04 03:27:13 +08:00
    想玩下还不如去 rails 。。。。那个 scaffold 真心爽,。。
    shyling
        45
    shyling  
       2016-06-04 07:37:09 +08:00 via iPad
    当然是裸写 wsgi 啦
    lincanbin
        46
    lincanbin  
       2016-06-04 09:27:45 +08:00
    要容易上手,估计只有 bottle 了。
    Geoion
        47
    Geoion  
       2016-06-04 12:55:03 +08:00
    之前写 django 觉得还不错,后来写了 tornado ,卧槽爽爽爽。
    junnplus
        48
    junnplus  
       2016-06-04 18:11:09 +08:00 via Android
    这种问题就好比有没有更合适上的女人,答案就是没有更合适上的,只有想上的。
    geek123
        49
    geek123  
       2016-06-07 18:00:23 +08:00
    @x8888k 这跨度有点儿大。哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2523 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:09 PVG 20:09 LAX 04:09 JFK 07:09
    Do have faith in what you're doing.
    ubao msn 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