我正在用Django构建一个web应用程序。我选择Django的原因是:

我想使用免费/开源工具。 我喜欢Python,觉得它是一种长期的语言,而对于Ruby,我不确定,而PHP似乎是一个巨大的麻烦。 我正在为一个想法构建一个原型,并没有过多地考虑未来。开发速度是主要因素,而且我已经了解Python。 我知道迁移到谷歌应用程序引擎将更容易,如果我选择这样做在未来。 我听说Django很“不错”。

现在我越来越接近于考虑出版我的作品,我开始担心规模问题。我找到的关于Django伸缩能力的唯一信息是Django团队提供的(我不是说什么要忽略它们,但这显然不是客观的信息…)

我的问题:

目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模) Django能每天处理10万名用户,每个用户访问站点几个小时吗? 像Stack Overflow这样的站点可以在Django上运行吗?


当前回答

今天,我们使用许多网络应用程序和网站来满足我们的需求。其中大部分是非常有用的。我将向你展示一些python或django所使用的。

华盛顿邮报》

《华盛顿邮报》的网站是一个非常受欢迎的在线新闻来源,以配合他们的日报。它的大量视图和流量可以被Django web框架轻松处理。 华盛顿邮报- 5220万独立访客(2015年3月)

NASA

美国国家航空航天局的官方网站是关于他们正在进行的太空探索的新闻、图片和视频的地方。这个Django网站可以轻松处理大量的浏览量和流量。 月访问量200万人次

《卫报》

卫报是卫报媒体集团旗下的英国新闻和媒体网站。它几乎包含了《卫报》和《观察家报》的所有内容。这些巨大的数据是由Django处理的。 卫报(评论系统)- 4600万独立访问者(2014年10月)

YouTube

我们都知道YouTube是一个上传猫咪视频的地方,但失败了。作为现存最受欢迎的网站之一,它为我们提供了无穷无尽的视频娱乐。Python编程语言为它和我们喜爱的特性提供了支持。

DropBox

DropBox开启了在线文档存储革命,并已成为人们日常生活的一部分。我们现在几乎把所有东西都存储在云端。Dropbox允许我们使用Python的强大功能来存储、同步和共享几乎任何东西。

调查猴子

Survey Monkey是最大的在线调查公司。他们可以在重写后的Python网站上每天处理超过100万条回复。

Quora

Quora是在线提问和从个人社区获得答案的首选网站。在他们的Python网站上,相关的结果由这些社区成员回答、编辑和组织。

Bitly的

Bitly URL缩短服务和分析的大部分代码都是用Python构建的。他们的服务每天可以处理数以亿计的事件。

Reddit

Reddit被称为互联网的头版。它是基于数千种不同类别的在线查找信息或娱乐的地方。帖子和链接是用户生成的,并通过投票提升到顶部。Reddit的许多功能都依赖于Python。

Hipmunk

Hipmunk是一个在线旅游网站,通过比较顶级旅游网站来为你找到最优惠的价格。这个Python网站的工具可以让你找到你的目的地最便宜的酒店和航班。

点击这里了解更多: 25-of-the-most-popular-python-and-django-websites, What-are-some-well-known-sites-running-on-Django

其他回答

我所知道的最大的django网站是华盛顿邮报,这肯定表明它可以很好地扩展。

好的设计决策对性能的影响可能比其他任何东西都要大。Twitter经常被认为是另一个基于动态解释语言的web框架——Ruby on Rails——体现了性能问题的站点——但Twitter工程师表示,该框架并不像他们早期所做的一些数据库设计选择那样是个大问题。

Django可以很好地使用memcached,并提供了一些管理缓存的类,这可以解决大部分性能问题。在现实中,你在网络上交付的东西几乎比你的后端更重要——使用像yslow这样的工具对于高性能web应用程序来说是至关重要的。你可以在后台添加更多硬件,但你不能改变你的用户带宽。

我有点唱反调:

你应该看看calhenderson在Django con 2008的主题演讲,标题是“为什么我讨厌Django”,他在演讲中详细介绍了Django在高流量网站中所缺少的所有功能。最后,你必须以开放的心态看待这一切,因为编写可伸缩的Django应用程序是完全可能的,但我认为这是一个很好的演示,与你的问题相关。

平均分配任务,简而言之,优化每个方面,包括db,文件,图像,CSS等,并平衡其他资源的负载,一旦你的网站/应用程序开始增长是必要的。或者你给它更多的生长空间。大型网站必须采用CDN、Cloud等最新技术。仅仅开发和调整一个应用程序不会给你百分之百的满意度,其他组件也发挥着重要作用。

扩展Web应用程序不是关于Web框架或语言,而是关于你的架构。 这是关于你如何处理你的浏览器缓存,你的数据库缓存,你如何使用非标准的持久性提供者(如CouchDB),你的数据库是如何调优的,还有很多其他的东西…

看看这个叫做EveryBlock的微型新闻聚合器。

它完全是用Django编写的。事实上,正是他们开发了Django框架本身。