V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
scenix
V2EX  ›  Python

求推荐简单好用的 app 后台框架,最好是 python 的

  •  
  •   scenix · Jan 19, 2015 · 17495 views
    This topic created in 4116 days ago, the information mentioned may be changed or developed.

    最近开发个app,和后台的交互就是简单的json来json去的那种。
    现在后台哥们用的是php的laravel框架。
    大家觉得什么框架好使呢?Python的有木有?

    47 replies    2015-01-23 18:22:58 +08:00
    R4rvZ6agNVWr56V0
        1
    R4rvZ6agNVWr56V0  
       Jan 19, 2015
    flask
    tornado
    sujin190
        2
    sujin190  
       Jan 19, 2015
    laravel 好重,tornado+1
    kenneth
        3
    kenneth  
       Jan 19, 2015
    推荐phalcon,用php比用python稳定
    nomaka
        4
    nomaka  
       Jan 19, 2015
    长连接tornado webapi 一堆
    shajiquan
        5
    shajiquan  
       Jan 19, 2015
    tornado +1。
    jamiesun
        6
    jamiesun  
       Jan 19, 2015
    bottle一个文件搞定,多简单啊。

    说实话用了tornado三年多,感觉太不简洁。除非业务场景需要才用。
    wph95
        7
    wph95  
       Jan 19, 2015
    “用php比用python稳定” WTF 这什么神逻辑
    只是简单提供restful api 用 flask
    需要点复杂功能的 django
    tornado 也不错
    ooh
        8
    ooh  
       Jan 19, 2015
    slim
    FindHao
        9
    FindHao  
       Jan 19, 2015 via Android
    tornado不错,很简单,看一份简单的代码就明白了,我正在学习。
    roricon
        10
    roricon  
       Jan 19, 2015   ❤️ 1
    django + djangorestframework
    或者
    flask + flask-restless
    yueyoum
        11
    yueyoum  
       Jan 19, 2015   ❤️ 2
    强烈推荐 Django

    替换组建: 基于redis的 session 和 cache, 性能保证
    数据库上 postgresql , array, json 类型爽爆,

    并且 django 1.8 ORM 还支持 array,

    json 也简单, 自己写 migration.RunSql 去alter column 和 create index

    自带 JsonResponse

    框架自带多数据库处理, 读写分离都自动搞定了。



    我也成功的 给django 加 了 websocket 支持,

    总之一句话: django ,不折腾,方便好用
    loading
        12
    loading  
       Jan 19, 2015 via Android
    tornado,个人建议看看node.js
    BiggerLonger
        13
    BiggerLonger  
       Jan 19, 2015
    Falcon, 够快
    abelyao
        14
    abelyao  
       Jan 19, 2015
    @BiggerLonger 是指 Phalcon 吗?
    maikcn
        15
    maikcn  
       Jan 19, 2015 via Android
    flask
    pkubuntu
        16
    pkubuntu  
       Jan 19, 2015
    django 就挺好的,可以结合tornado使用,作为一个wsgi的后端
    arkilis
        17
    arkilis  
       Jan 19, 2015
    django还不折腾?
    ipconfiger
        18
    ipconfiger  
       Jan 19, 2015
    @yueyoum 能换的都换了,还不折腾?
    clino
        20
    clino  
       Jan 19, 2015 via Android
    uliweb
    janxin
        21
    janxin  
       Jan 19, 2015
    http://falconframework.org/ 除了api就没其他额外功能了
    wenbinwu
        22
    wenbinwu  
       Jan 19, 2015
    用什么框架啊,直接werkzeug
    yueyoum
        23
    yueyoum  
       Jan 19, 2015
    @ipconfiger

    pip install xxx
    然后在 django的settings 写一点配置

    这叫折腾?
    leopku
        24
    leopku  
       Jan 19, 2015
    rails / padrino 不折腾
    skywalker
        25
    skywalker  
       Jan 19, 2015
    正儿八经用过的只有falcon和flask,这两个里面我推荐flask。flask是简约而不简单,falcon真的有点简陋,很多东西都没有,而且正经维护的好像只有一个人,反馈的issue半年都没动静……
    daoluan
        26
    daoluan  
       Jan 19, 2015
    @pkubuntu 有了 django 还需要 tornado 的么?有什么场景需要两者都出现~~
    xgdyhaiyang
        27
    xgdyhaiyang  
       Jan 19, 2015
    web.py + sqlalchemy
    evlos
        28
    evlos  
       Jan 19, 2015 via iPhone
    Tornado +
    tongqi
        29
    tongqi  
       Jan 19, 2015
    @yueyoum django使用postgresql的话,效率怎么样,跟mongo比。还有在admin里面这种array, json字段的显示问题好解决么?
    tongqi
        30
    tongqi  
       Jan 19, 2015
    @yueyoum 前段时间看到SwampDragon这个realtime扩展还挺好用的
    wingyiu
        31
    wingyiu  
       Jan 19, 2015
    @daoluan django+gevent+gunicorn吧...
    withinthefog
        32
    withinthefog  
       Jan 19, 2015
    sails.js
    我不是来踢馆的...真的...
    Zuckonit
        33
    Zuckonit  
       Jan 20, 2015
    @jamiesun bottle + gevent
    fantasyczl
        34
    fantasyczl  
       Jan 20, 2015
    flask +1
    yueyoum
        35
    yueyoum  
       Jan 20, 2015
    @tongqi

    django 用 postgresql 话, 一定要用连接池, 比如 pgbouncer 就够简单有效
    因为 postgresql会为每个链接创建一个进程, mysql是线程

    所以频繁建立/断开链接 对 postgresql 的性能影响较大。 而且过多的worker 进程也会占用更多的内存


    你说的效率 是 性能,还是开发效率?

    我有个项目全部用的mongodb, 主要是mongodb不支持事务,这是个硬伤!

    所以后来开始学习 postgresql。
    (当初上mongodb也是因为 mysql对 array, dict, json 这样的没有支持。
    后来知道 postgresql 支持这些, 所以就关注了postgresql)

    性能: 看这篇文章 http://blogs.enterprisedb.com/2014/09/24/postgres-outperforms-mongodb-and-ushers-in-new-developer-reality/

    开发: 还是RDBMS + redis 好用。
    你觉得直接去操作mongodb很方便舒心? (时间旧了,一个document里有什么字段都忘了吧)


    而且 django 自身提供的组件和功能足够多,社区足够大, 你在github上 watch 几个热门项目就知道,django的开发是有多活跃。

    所以 django 的开发效率是很高的。

    admin 里面 json, hstore, array 是以 TextField 形式显示的,
    也就是 array[1,2,3] 显示就是 “1,2,3”
    json, 就是 序列化后的 字符串
    surefire
        36
    surefire  
       Jan 20, 2015
    Django
    yetone
        37
    yetone  
       Jan 20, 2015
    @daoluan
    django 是个纯粹的 web framework ,而 tornado 则是个 web server 其 web framework 只是附加的功能而已。所以你用一个 web framework 来开发一个 web app 的时候难道不用一个 web server 来部署启动?这就是 django + tornado 一起用的一种情况
    guotie
        38
    guotie  
       Jan 20, 2015
    golang
    leejaen
        39
    leejaen  
       Jan 20, 2015
    一个Django 全包,折腾那么多干什么。
    xiaket
        40
    xiaket  
       Jan 20, 2015
    @yueyoum 实话实说, 真挺折腾的... 要换这么多, 不如找个微型框架往里面加了...
    MForever78
        41
    MForever78  
       Jan 20, 2015
    django 都嫌折腾的话,也没啥好推荐了
    yueyoum
        42
    yueyoum  
       Jan 20, 2015
    @xiaket

    你没好好用过django 吧。

    就像
    @MForever78 说的, 如果连django 都嫌折腾, 那也无话可说了。


    你觉得要换的多,可以不换啊。那些东西仅仅是处于性能考虑才换的。
    你找个微型框架,什么都自己加, 这才是不折腾?
    ivenvd
        43
    ivenvd  
       Jan 20, 2015
    @yueyoum 很想知道你是拿什么跟 Django 比才得出这结论的…… LZ 的需求的重点显然是快速上手开发小型项目,而不是在谈哪个功能全,不知道你又是扯性能、又是扯数据库的干嘛……

    就上手而言,Django 需要:
    1. 读 Django 那个晦涩的文档。
    2. pip install django
    3. django-admin.py startproject mysite
    4. 读文档修改各种配置文件。
    5. 读文档开始编程。
    6. python manage.py runserver

    而随便一个轻量级框架,比如 Flask,只需要:
    1. pip install flask
    2. 读文档开始编程。
    3. ./app.py

    结论无需多说。


    另外个人推荐 padrino。Flask 可用的积木太少了,质量也一般般。而 padrino 则和 Rails 共享大量的 gem,可轻可重,用来做 API Server 很不错。
    xiaket
        44
    xiaket  
       Jan 20, 2015
    @yueyoum 1. 用过; 2. 我没嫌Django折腾, 只嫌Django重, 我是嫌你折腾...
    yueyoum
        45
    yueyoum  
       Jan 20, 2015
    @ivenvd
    @xiaket

    我学的第一个框架就是 Django, 后来也和你们一样,觉得django重,
    于是开始用其他框架, web.py, bottle, cherrypy

    重度使用过bottle, 期间那才叫折腾, 项目上了规模,很多东西都缺,社区没有良好的作品,
    只能自己撸轮子, 反而很拖速度

    甚至bottle和 一个session插件结合的时候,再某些情况 无法运行,会报错。
    这一点 bottle 官方已经merge了我贡献的代码。


    对,这些框架,上手很快, 我做一些http server 测试功能的 也会用bottle,
    但不要因为上手快就说 上手慢的不好,

    我提的那些东西,就是为了提前反驳很多人可能会说的言论:
    django慢,orm慢,模板慢, 但其实是没深入用django而已。
    tongqi
        46
    tongqi  
       Jan 21, 2015
    @yueyoum
    感觉django针对网站开发,集成了很多有用的轮子,像通用视图、用户验证系统、session、评论、分页等
    但是写api服务的话,上面的就用不着了,有什么好的推荐,django rest framework吗?
    piaChai
        47
    piaChai  
       Jan 23, 2015
    你们楼上的谈了半天,一点有用的东西都没有。
    把你们上面的说过的框架全部搞定不好吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3579 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 168ms · UTC 00:38 · PVG 08:38 · LAX 17:38 · JFK 20:38
    ♥ Do have faith in what you're doing.