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 · 6772 次点击
    这是一个创建于 2882 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从来没弄过 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  
       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  
       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 貌似没有插件机制
    GeekGao
        26
    GeekGao  
       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   ·   我们的愿景   ·   实用小工具   ·   3787 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:33 · PVG 18:33 · LAX 03:33 · JFK 06:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.