运行“runserver”命令时Django使用什么类型的服务器?文档或多或少地说它是“轻量级开发Web服务器”。它是例如Apache吗?提前谢谢。
答案 0 :(得分:11)
这正是它所说的 - 一个简单,轻量级的Web服务器,用Python实现,与Django一起提供,仅用于开发目的。它本身并不是一个独立的Web服务器,纯粹用于使用Django开发应用程序 - 您不应该在生产中使用它,因为它根本不提供生产Web服务器中所需的所有功能。
Web服务器几乎可以用任何编程语言实现,因此使用Django发布一个用Python实现的服务器是有意义的,这样你就可以立即使用它,而不必安装类似Apache的东西。大多数可能在生产中使用的Web服务器,例如Apache和Nginx,都是用C语言编写的,所以用Django发送它们实际上并不实际。
此外,运送您自己的开发服务器可以降低复杂性。 Apache和Nginx都是复杂的软件,需要大量的配置,虽然有很多方法可以在开发过程中实现自动化,但是当你更愿意编写代码时,这并不是你真正想要处理的。所有您需要的东西都可以提供静态和动态内容 - 您不需要很多其他功能。值得注意的是,即使PHP现在都附带了一个开发服务器。
当您使用Django项目时,您当然应该使用正确的Web服务器。通常建议使用Django,在制作中你应该使用两个Web服务器,一个用于提供静态内容,另一个用于提供动态内容,因为让Django服务静态内容会降低它的速度。这听起来很奇怪,但它实际上很有意义,因为你所做的是设置一个Web服务器来提供所有静态内容,然后让它反向代理到另一个服务器,它运行在非标准端口上,并提供所有动态内容。我当前项目的设置是Nginx用于静态内容,Gunicorn用于动态内容。