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

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

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

我的问题:

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


当前回答

YouTube的开发者倡导者在PyCon 2012上做了一个关于扩展Python的演讲,这也与扩展Django有关。

YouTube拥有超过10亿用户,而YouTube是建立在Python之上的。

其他回答

"What are the largest sites built on Django today?" There isn't any single place that collects information about traffic on Django built sites, so I'll have to take a stab at it using data from various locations. First, we have a list of Django sites on the front page of the main Django project page and then a list of Django built sites at djangosites.org. Going through the lists and picking some that I know have decent traffic we see: Instagram: What Powers Instagram: Hundreds of Instances, Dozens of Technologies. Pinterest: Alexa rank 37 (21.4.2015) and 70 Million users in 2013 Bitbucket: 200TB of Code and 2.500.000 Users Disqus: Serving 400 million people with Python. curse.com: 600k daily visits. tabblo.com: 44k daily visits, see Ned Batchelder's posts Infrastructure for modern web sites. chesspark.com: Alexa rank about 179k. pownce.com (no longer active): alexa rank about 65k. Mike Malone of Pownce, in his EuroDjangoCon presentation on Scaling Django Web Apps says "hundreds of hits per second". This is a very good presentation on how to scale Django, and makes some good points including (current) shortcomings in Django scalability. HP had a site built with Django 1.5: ePrint center. However, as for novemer/2015 the entire website was migrated and this link is just a redirect. This website was a world-wide service attending subscription to Instant Ink and related services HP offered (*). "Can Django deal with 100,000 users daily, each visiting the site for a couple of hours?" Yes, see above. "Could a site like Stack Overflow run on Django?" My gut feeling is yes but, as others answered and Mike Malone mentions in his presentation, database design is critical. Strong proof might also be found at www.cnprog.com if we can find any reliable traffic stats. Anyway, it's not just something that will happen by throwing together a bunch of Django models :)

当然,还有更多感兴趣的网站和博主,但我必须在某个地方停下来!


一篇关于使用Django构建高流量网站michaelmoore.com的博文,将其描述为排名前10,000的网站。Quantcast数据和compete.com数据。


(*)编辑的作者,包括这些引用,曾经在该项目中作为外包开发人员工作。

下面是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万点击量并不是唯一的变量:你想花多少钱?管理所有这些组件,您有多少专业知识?你有多少时间把这些都整理好?

我认为问题并不在于Django的伸缩性。

我真的建议你研究一下你的架构,这将有助于你的扩展需求。如果你弄错了,Django的性能就没有意义了。性能=规模。你可以拥有一个具有惊人性能但无法扩展的系统,反之亦然。

您的应用程序是否绑定了数据库?如果是,那么你的规模问题也存在。你打算如何与Django中的数据库交互?如果数据库处理请求的速度不及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

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

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