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
scenix
V2EX  ›  Python

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

  •  
  •   scenix · 2015-01-19 17:52:53 +08:00 · 16685 次点击
    这是一个创建于 3597 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    47 条回复    2015-01-23 18:22:58 +08:00
    GeekGao
        1
    GeekGao  
       2015-01-19 17:54:27 +08:00
    flask
    tornado
    sujin190
        2
    sujin190  
       2015-01-19 17:56:45 +08:00
    laravel 好重,tornado+1
    kenneth
        3
    kenneth  
       2015-01-19 18:09:46 +08:00
    推荐phalcon,用php比用python稳定
    nomaka
        4
    nomaka  
       2015-01-19 18:19:43 +08:00
    长连接tornado webapi 一堆
    shajiquan
        5
    shajiquan  
       2015-01-19 18:24:59 +08:00
    tornado +1。
    jamiesun
        6
    jamiesun  
       2015-01-19 18:26:02 +08:00
    bottle一个文件搞定,多简单啊。

    说实话用了tornado三年多,感觉太不简洁。除非业务场景需要才用。
    wph95
        7
    wph95  
       2015-01-19 18:26:14 +08:00
    “用php比用python稳定” WTF 这什么神逻辑
    只是简单提供restful api 用 flask
    需要点复杂功能的 django
    tornado 也不错
    ooh
        8
    ooh  
       2015-01-19 18:26:50 +08:00
    slim
    FindHao
        9
    FindHao  
       2015-01-19 18:27:35 +08:00 via Android
    tornado不错,很简单,看一份简单的代码就明白了,我正在学习。
    roricon
        10
    roricon  
       2015-01-19 18:34:05 +08:00   ❤️ 1
    django + djangorestframework
    或者
    flask + flask-restless
    yueyoum
        11
    yueyoum  
       2015-01-19 18:39:32 +08:00   ❤️ 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  
       2015-01-19 18:45:15 +08:00 via Android
    tornado,个人建议看看node.js
    BiggerLonger
        13
    BiggerLonger  
       2015-01-19 18:52:28 +08:00
    Falcon, 够快
    abelyao
        14
    abelyao  
       2015-01-19 19:07:03 +08:00
    @BiggerLonger 是指 Phalcon 吗?
    maikcn
        15
    maikcn  
       2015-01-19 19:52:25 +08:00 via Android
    flask
    pkubuntu
        16
    pkubuntu  
       2015-01-19 19:59:23 +08:00
    django 就挺好的,可以结合tornado使用,作为一个wsgi的后端
    arkilis
        17
    arkilis  
       2015-01-19 20:06:06 +08:00
    django还不折腾?
    ipconfiger
        18
    ipconfiger  
       2015-01-19 20:12:41 +08:00
    @yueyoum 能换的都换了,还不折腾?
    yakczh
        19
    yakczh  
       2015-01-19 20:16:27 +08:00
    clino
        20
    clino  
       2015-01-19 20:18:25 +08:00 via Android
    uliweb
    janxin
        21
    janxin  
       2015-01-19 21:24:11 +08:00
    http://falconframework.org/ 除了api就没其他额外功能了
    wenbinwu
        22
    wenbinwu  
       2015-01-19 21:31:52 +08:00
    用什么框架啊,直接werkzeug
    yueyoum
        23
    yueyoum  
       2015-01-19 21:37:22 +08:00
    @ipconfiger

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

    这叫折腾?
    leopku
        24
    leopku  
       2015-01-19 21:43:25 +08:00
    rails / padrino 不折腾
    skywalker
        25
    skywalker  
       2015-01-19 22:01:37 +08:00
    正儿八经用过的只有falcon和flask,这两个里面我推荐flask。flask是简约而不简单,falcon真的有点简陋,很多东西都没有,而且正经维护的好像只有一个人,反馈的issue半年都没动静……
    daoluan
        26
    daoluan  
       2015-01-19 22:16:14 +08:00
    @pkubuntu 有了 django 还需要 tornado 的么?有什么场景需要两者都出现~~
    xgdyhaiyang
        27
    xgdyhaiyang  
       2015-01-19 22:25:21 +08:00
    web.py + sqlalchemy
    evlos
        28
    evlos  
       2015-01-19 23:01:59 +08:00 via iPhone
    Tornado +
    tongqi
        29
    tongqi  
       2015-01-19 23:42:48 +08:00
    @yueyoum django使用postgresql的话,效率怎么样,跟mongo比。还有在admin里面这种array, json字段的显示问题好解决么?
    tongqi
        30
    tongqi  
       2015-01-19 23:47:26 +08:00
    @yueyoum 前段时间看到SwampDragon这个realtime扩展还挺好用的
    wingyiu
        31
    wingyiu  
       2015-01-19 23:47:43 +08:00
    @daoluan django+gevent+gunicorn吧...
    withinthefog
        32
    withinthefog  
       2015-01-19 23:53:36 +08:00
    sails.js
    我不是来踢馆的...真的...
    Zuckonit
        33
    Zuckonit  
       2015-01-20 09:44:12 +08:00
    @jamiesun bottle + gevent
    fantasyczl
        34
    fantasyczl  
       2015-01-20 09:52:36 +08:00
    flask +1
    yueyoum
        35
    yueyoum  
       2015-01-20 09:52:50 +08:00
    @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  
       2015-01-20 12:13:53 +08:00
    Django
    yetone
        37
    yetone  
       2015-01-20 12:47:19 +08:00
    @daoluan
    django 是个纯粹的 web framework ,而 tornado 则是个 web server 其 web framework 只是附加的功能而已。所以你用一个 web framework 来开发一个 web app 的时候难道不用一个 web server 来部署启动?这就是 django + tornado 一起用的一种情况
    guotie
        38
    guotie  
       2015-01-20 12:54:31 +08:00
    golang
    leejaen
        39
    leejaen  
       2015-01-20 13:34:03 +08:00
    一个Django 全包,折腾那么多干什么。
    xiaket
        40
    xiaket  
       2015-01-20 15:07:28 +08:00
    @yueyoum 实话实说, 真挺折腾的... 要换这么多, 不如找个微型框架往里面加了...
    MForever78
        41
    MForever78  
       2015-01-20 15:51:43 +08:00
    django 都嫌折腾的话,也没啥好推荐了
    yueyoum
        42
    yueyoum  
       2015-01-20 15:57:22 +08:00
    @xiaket

    你没好好用过django 吧。

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


    你觉得要换的多,可以不换啊。那些东西仅仅是处于性能考虑才换的。
    你找个微型框架,什么都自己加, 这才是不折腾?
    ivenvd
        43
    ivenvd  
       2015-01-20 16:22:10 +08:00
    @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  
       2015-01-20 16:53:14 +08:00
    @yueyoum 1. 用过; 2. 我没嫌Django折腾, 只嫌Django重, 我是嫌你折腾...
    yueyoum
        45
    yueyoum  
       2015-01-20 17:26:33 +08:00
    @ivenvd
    @xiaket

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

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

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


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

    我提的那些东西,就是为了提前反驳很多人可能会说的言论:
    django慢,orm慢,模板慢, 但其实是没深入用django而已。
    tongqi
        46
    tongqi  
       2015-01-21 14:11:27 +08:00
    @yueyoum
    感觉django针对网站开发,集成了很多有用的轮子,像通用视图、用户验证系统、session、评论、分页等
    但是写api服务的话,上面的就用不着了,有什么好的推荐,django rest framework吗?
    piaChai
        47
    piaChai  
       2015-01-23 18:22:58 +08:00
    你们楼上的谈了半天,一点有用的东西都没有。
    把你们上面的说过的框架全部搞定不好吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3586 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:58 · PVG 12:58 · LAX 20:58 · JFK 23:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.