我正在用Django构建一个web应用程序。我选择Django的原因是:
我想使用免费/开源工具。
我喜欢Python,觉得它是一种长期的语言,而对于Ruby,我不确定,而PHP似乎是一个巨大的麻烦。
我正在为一个想法构建一个原型,并没有过多地考虑未来。开发速度是主要因素,而且我已经了解Python。
我知道迁移到谷歌应用程序引擎将更容易,如果我选择这样做在未来。
我听说Django很“不错”。
现在我越来越接近于考虑出版我的作品,我开始担心规模问题。我找到的关于Django伸缩能力的唯一信息是Django团队提供的(我不是说什么要忽略它们,但这显然不是客观的信息…)
我的问题:
目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模)
Django能每天处理10万名用户,每个用户访问站点几个小时吗?
像Stack Overflow这样的站点可以在Django上运行吗?
如果你想使用开源,那么你有很多选择。但是python是其中最好的,因为它有很多库和一个超级棒的社区。
下面这些原因可能会改变你的想法:
Python is very good but it is a interpreted language which makes it slow. But many accelerator and caching services are there which partly solve this problem.
If you are thinking about rapid development then Ruby on Rails is best among all. The main motto of this(ROR) framework is to give a comfortable experience to the developers. If you compare Ruby and Python both have nearly the same syntax.
Google App Engine is very good service but it will bind you in its scope, you don't get chance to experiment new things. Instead of it you can use Digital Ocean cloud which will only take $5/Month charge for its simplest droplet. Heroku is another free service where you can deploy your product.
Yes! Yes! What you heard is totally correct but here are some examples which are using other technologies
Rails: Github, Twitter(previously), Shopify, Airbnb, Slideshare, Heroku etc.
PHP: Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp etc.
结论是一个框架或语言不会为你做所有的事情。一个更好的架构,设计和策略会给你一个可扩展的网站。Instagram是最大的例子,这个小团队管理着如此庞大的数据。这里有一个关于它的架构的博客,一定要读。
下面是Django中构建的一些相对高调的东西:
《卫报》的“调查你的议员的开支”应用程序
Politifact.com(这里有一篇博客文章谈论了(积极的)体验。Site获得了普利策奖。
《纽约时报》的代表应用
EveryBlock
WaPo的程序员之一Peter Harkins在他的博客上列出了他们用Django构建的所有东西
它有点老了,但是《洛杉矶时报》的人给出了他们为什么选择Django的基本概述。
洋葱的AV俱乐部最近从(我想是Drupal)转移到了Django。
我想很多这样的网站每天的点击率都超过了10万。Django当然可以达到10万/天甚至更多的点击量。但是YMMV的作用取决于你要建什么。
在Django级别有缓存选项(例如在memcached中缓存查询集和视图可以创造奇迹)和其他级别(如Squid这样的上游缓存)。数据库服务器规范也将是一个因素(通常是挥霍的地方),以及您对它的调优情况。例如,不要想当然地认为Django会正确地建立索引。不要认为默认的PostgreSQL或MySQL配置就是正确的。
此外,如果Django运行速度慢,您总是可以选择让多个应用服务器运行Django,并在前面安装一个软件或硬件负载均衡器。
最后,静态内容和Django是在同一个服务器上提供的吗?你用的是Apache还是nginx或者lighttpd?你能负担得起为静态内容使用CDN吗?这些都是需要考虑的问题,但都是很有推测性的。每天10万点击量并不是唯一的变量:你想花多少钱?管理所有这些组件,您有多少专业知识?你有多少时间把这些都整理好?