django最佳实践 - 欢迎吐槽

2012-07-12 23:38:21 +08:00
 okidogi
如果你做过django的网络开发和部署,你可能会感慨程序员的生活有多苦逼,隔离的python运行环境就有多重要。virtualenv... ...

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

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

Celery看起来不错,有机会试试。
judezhan
2012-07-13 00:54:40 +08:00
推荐gunicorn+nginx,方便又高效。之前用mod_wsgi+apache,很烂,巨烂。
judezhan
2012-07-13 01:00:28 +08:00
@okidogi RabbitMQ是个Message Queue, Redis一般做Cache,这两个有什么可以直接做比较的吗?除非自己用Redis实现一个Message Queue,虽然也不难,但我建议可以尝试一下ZeroMQ,性能比RabbitMQ要好很多。
iiduce
2012-07-13 01:25:45 +08:00
最近做的django项目运行在mod_wsgi + nginx,mongodb做数据库和cache
okidogi
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
2012-07-13 03:40:04 +08:00
寻python django程序员,付费请教一个新闻发布的系统,就一个登陆界面,发布新闻的按钮和发布界面。 500元,上海地区面授,万分感谢! 希望你别嫌弃太少钱了,体谅一下吊丝苦逼青年吧!

谢谢
xhinking
2012-07-13 08:39:31 +08:00
@1272729223 书上应该有很多这样的
例子吧?
1272729223
2012-07-13 13:48:32 +08:00
@xhinking 恩 谢谢 现在用django的admin系统,我大概知道怎么实现的思路(当然还需要折腾),,但是我想自己写一个后台,只要会一个,我接下去就知道怎么折腾了。
zxwind
2012-07-13 13:56:59 +08:00
zxwind
2012-07-13 13:59:14 +08:00
@1272729223 django的admin不是挺好的么,本来起源就是用来发布新闻的
okidogi
2012-07-13 16:54:42 +08:00
@1272729223 OT了。你需要做的是找本django的教程花点儿时间看看而不是花500块钱。如果你需要一些实例: 这儿有django by example: http://lightbird.net/dbe/
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
2012-08-03 12:43:28 +08:00
用Celery RabbitMQ写了一个群发邮件的,10w+ users
muxi
2012-08-03 12:55:37 +08:00
@okidogi RabbitMQ配置非常简单,也有漂亮的Web管理界面,就是运维稍微复杂,Erlang打印一坨堆栈信息不知道干嘛,另外RabbitMQ虽然比较强大,也不丢消息,但他确实是史上最慢的MQ,对高效环境有需求的就不用考虑了,AMQP协议的MQ都一路货色

@judezhan 说用ZeroMQ替代RabbitMQ,个人觉得这俩就不是一路货,ZeroMQ只是简单实现了一个消息传输协议,什么都没有,没有消息可靠性检查,没有重发机制,没有监控,没有各种运维的东西,在实际项目中慎用,除非你确信你能搞定这些
tioover
2012-08-03 13:11:09 +08:00
昨天用了一下刚才说的那个项目模板,默认装了一堆django app 感觉有点可怕
wenbinwu
2012-08-03 14:08:37 +08:00
Mozilla的playdoh有文档的,你可以去看看:)
okidogi
2012-08-03 16:27:10 +08:00
@tioover 加到文章中去了。Thanks ;-) 但是这两个的目录结构都有些复杂,跟我想象中的差别有些大,一直用django-startproject,最后更新2011-06-12,应该是一个一直都在维护的项目。
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的结果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/42225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX