首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

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

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

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

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

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

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

    你没好好用过django 吧。

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


    你觉得要换的多,可以不换啊。那些东西仅仅是处于性能考虑才换的。
    你找个微型框架,什么都自己加, 这才是不折腾?
        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 很不错。
        44
    xiaket   2015-01-20 16:53:14 +08:00
    @yueyoum 1. 用过; 2. 我没嫌Django折腾, 只嫌Django重, 我是嫌你折腾...
        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而已。
        46
    tongqi   2015-01-21 14:11:27 +08:00
    @yueyoum
    感觉django针对网站开发,集成了很多有用的轮子,像通用视图、用户验证系统、session、评论、分页等
    但是写api服务的话,上面的就用不着了,有什么好的推荐,django rest framework吗?
        47
    piaChai   2015-01-23 18:22:58 +08:00
    你们楼上的谈了半天,一点有用的东西都没有。
    把你们上面的说过的框架全部搞定不好吗
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2230 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 10:13 · PVG 18:13 · LAX 03:13 · JFK 06:13
    ♥ Do have faith in what you're doing.