V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
okidogi
V2EX  ›  Django

django最佳实践 - 欢迎吐槽

  •  
  •   okidogi ·
    fengli · 2012-07-12 23:38:21 +08:00 · 7230 次点击
    这是一个创建于 4298 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果你做过django的网络开发和部署,你可能会感慨程序员的生活有多苦逼,隔离的python运行环境就有多重要。virtualenv... ...

    更多猛击:
    http://404think.com/django-best-practice/
    21 条回复    1970-01-01 08:00:00 +08:00
    xhinking
        1
    xhinking  
       2012-07-12 23:54:41 +08:00
    django的部署确实让人蛋疼。之前做了一个小项目忘记怎么部署的了。

    Celery+RabbitMQ是个不错的组合,slideshare上有很多相关的slide。没有用过,感觉应该挺好的吧。
    okidogi
        2
    okidogi  
    OP
       2012-07-13 00:02:07 +08:00
    @xhinking RabbitMQ据说非常稳定消息不会丢失,但是配置比较麻烦。redis可能会更方便一些。
    vixvix
        3
    vixvix  
       2012-07-13 00:38:30 +08:00
    virtualenv + pip 应该所有python framework都适用。

    Celery看起来不错,有机会试试。
    judezhan
        4
    judezhan  
       2012-07-13 00:54:40 +08:00
    推荐gunicorn+nginx,方便又高效。之前用mod_wsgi+apache,很烂,巨烂。
    judezhan
        5
    judezhan  
       2012-07-13 01:00:28 +08:00
    @okidogi RabbitMQ是个Message Queue, Redis一般做Cache,这两个有什么可以直接做比较的吗?除非自己用Redis实现一个Message Queue,虽然也不难,但我建议可以尝试一下ZeroMQ,性能比RabbitMQ要好很多。
    iiduce
        6
    iiduce  
       2012-07-13 01:25:45 +08:00   ❤️ 1
    最近做的django项目运行在mod_wsgi + nginx,mongodb做数据库和cache
    okidogi
        7
    okidogi  
    OP
       2012-07-13 01:52:06 +08:00
    @judezhan gunicorn+nginx不错,instagram用的就是。配置比较方便。celery用RabbitMQ或者redis做broker发送或者接收信息。
    http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html
    1272729223
        8
    1272729223  
       2012-07-13 03:40:04 +08:00
    寻python django程序员,付费请教一个新闻发布的系统,就一个登陆界面,发布新闻的按钮和发布界面。 500元,上海地区面授,万分感谢! 希望你别嫌弃太少钱了,体谅一下吊丝苦逼青年吧!

    谢谢
    xhinking
        9
    xhinking  
       2012-07-13 08:39:31 +08:00
    @1272729223 书上应该有很多这样的
    例子吧?
    1272729223
        10
    1272729223  
       2012-07-13 13:48:32 +08:00
    @xhinking 恩 谢谢 现在用django的admin系统,我大概知道怎么实现的思路(当然还需要折腾),,但是我想自己写一个后台,只要会一个,我接下去就知道怎么折腾了。
    zxwind
        11
    zxwind  
       2012-07-13 13:56:59 +08:00
    zxwind
        12
    zxwind  
       2012-07-13 13:59:14 +08:00
    @1272729223 django的admin不是挺好的么,本来起源就是用来发布新闻的
    okidogi
        13
    okidogi  
    OP
       2012-07-13 16:54:42 +08:00
    @1272729223 OT了。你需要做的是找本django的教程花点儿时间看看而不是花500块钱。如果你需要一些实例: 这儿有django by example: http://lightbird.net/dbe/
    tioover
        14
    tioover  
       2012-08-02 22:28:28 +08:00
    server的话用tornado怎么样?

    另外,文中提到的template已经跟不上时代了,看上一次commit都是一年前半年前了。
    ==========
    > https://github.com/xenith/django-base-template
    > 这个模板比较活跃
    > 基于mozilla的这个
    > https://github.com/mozilla/playdoh
    wenbinwu
        15
    wenbinwu  
       2012-08-03 12:43:28 +08:00
    用Celery RabbitMQ写了一个群发邮件的,10w+ users
    muxi
        16
    muxi  
       2012-08-03 12:55:37 +08:00
    @okidogi RabbitMQ配置非常简单,也有漂亮的Web管理界面,就是运维稍微复杂,Erlang打印一坨堆栈信息不知道干嘛,另外RabbitMQ虽然比较强大,也不丢消息,但他确实是史上最慢的MQ,对高效环境有需求的就不用考虑了,AMQP协议的MQ都一路货色

    @judezhan 说用ZeroMQ替代RabbitMQ,个人觉得这俩就不是一路货,ZeroMQ只是简单实现了一个消息传输协议,什么都没有,没有消息可靠性检查,没有重发机制,没有监控,没有各种运维的东西,在实际项目中慎用,除非你确信你能搞定这些
    tioover
        17
    tioover  
       2012-08-03 13:11:09 +08:00
    昨天用了一下刚才说的那个项目模板,默认装了一堆django app 感觉有点可怕
    wenbinwu
        18
    wenbinwu  
       2012-08-03 14:08:37 +08:00
    Mozilla的playdoh有文档的,你可以去看看:)
    okidogi
        19
    okidogi  
    OP
       2012-08-03 16:27:10 +08:00
    @tioover 加到文章中去了。Thanks ;-) 但是这两个的目录结构都有些复杂,跟我想象中的差别有些大,一直用django-startproject,最后更新2011-06-12,应该是一个一直都在维护的项目。
    fay
        20
    fay  
       2012-08-04 11:25:59 +08:00
    现在pinax简化了许多,一直在用,pinax强制你必须使用virtualenv(我还多用了一个virtualenvwrapper),生成的目录结构没有那么多,只有一个apps目录是和文中一致的,另外支持额外的local_settings.py,适用于本地开发时覆盖配置和额外的选项。而且基本的模块(登陆、注册),wsgi.py,都继承进去,你需要做的就是。

    最重要的是pinax的核心成员来自Eldarion(如果提Gondor或许你会听过),他们的产品Gondor正是用来host、deploy django项目的,所以应该来说要靠谱些,pinax也是best practice的结果。
    davidzhang
        21
    davidzhang  
       2013-01-18 11:49:16 +08:00
    uwgi+nginx,超简单的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3128 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:56 · PVG 18:56 · LAX 03:56 · JFK 06:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.