热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么我需要一个单独的Django网络服务器?-WhywouldIneedaseparatewebserverforDjango?

InoticedthatmostofthebooksandtutorialsonDjangomakeitveryclearthatuseDjangodevelopm

I noticed that most of the books and tutorials on Django make it very clear that use Django development server as a normal webserver is not OK. But some state that other webservers are optional, that we can use Django server to put the website on the web for everybody to see.

我注意到Django上的大多数书籍和教程都非常清楚地表明将Django开发服务器用作普通的网络服务器是不行的。但有些人认为其他网络服务器是可选的,我们可以使用Django服务器将网站放在网上供所有人查看。

But why exactly? Why do I need (or not) to use Apache, Lighttpd, Nginx, etc. in front of Django - WSGI?

但为什么呢?为什么我需要(或不)在Django-WSGI前面使用Apache,Lighttpd,Nginx等?

Is Django server not safe in some way? If so, how it is unsafe exactly, and why can't Django just come with a more robust webserver (out of the box, ready to use)?

Django服务器在某种程度上不安全吗?如果是这样,它究竟是不安全的,为什么Django不能只带来更强大的网络服务器(开箱即用,随时可以使用)?

How exactly those webservers help Django? *I know that those webservers have very useful mods, but AGAIN: couldn't Django just come with a safer "mod-able" webserver?

这些网络服务器究竟如何帮助Django? *我知道那些网络服务器有非常有用的mod,但是AGAIN:Django不能带来更安全的“可修改”网络服务器吗?

3 个解决方案

#1


4  

It comes down to the goal of the Django project and the efficiency gains associated with re-use (as opposed to reinventing the wheel).

它归结为Django项目的目标以及与重复使用相关的效率提升(而不是重新发明轮子)。

The stated goal for Django is to offer a web application framework that enables quick development and minimal code. The original tagline was a "web application framework for perfectionists with deadlines".

Django的既定目标是提供一个支持快速开发和最少代码的Web应用程序框架。原始标语是“具有最后期限的完美主义者的Web应用程序框架”。

That goal can be accomplished with a simple single-threaded web server that simply facilitates development and testing.

这个目标可以通过一个简单的单线程Web服务器来完成,它简单地促进了开发和测试。

The goal of Apache httpd, Nginx, IIS, etc. on the other hand is to offer exceptionally scalable and performant web servers. These applications are highly configurable as all applications differ and there's no one size fits all. They also require different expertise to design, implement and maintain.

另一方面,Apache httpd,Nginx,IIS等的目标是提供异常可扩展和高性能的Web服务器。这些应用程序具有高度可配置性,因为所有应用程序都有所不同,并且没有一种适合所有应他们还需要不同的专业知识来设计,实施和维护。

So it makes a lot of sense that with limited resources (developer time), the Django team chose to focus on the web-app framework, and leave the production-ready web server to another project.

因此,在资源有限(开发时间)的情况下,Django团队选择专注于Web应用程序框架,并将生产就绪的Web服务器留给另一个项目,这很有意义。

#2


7  

My understanding is that the folks at Django are not specialized in the server business and they never intended their server code to produce anything other than a way to develop and test on one's local machine without a lot of traffic. Per their own documentation

我的理解是,Django的人并不专注于服务器业务,他们从不打算让他们的服务器代码生成任何东西,除了在没有大量流量的情况下在一台本地机器上开发和测试。根据自己的文档

Now’s a good time to note: don’t use this server in anything resembling a production environment. It’s intended only for use while developing. (We’re in the business of making Web frameworks, not Web servers.)

现在是时候注意了:不要在类似生产环境的任何地方使用这个服务器。它仅用于开发时使用。 (我们的业务是制作Web框架,而不是Web服务器。)

#3


2  

It is not something specific to Django, that is the case for all modern web frameworks that I know, they all have this very simple built-in web server that we use only for development purposes, and the reason is obvious, it does not make any sense to reinvent the wheel since we already have very powerful web servers.

它不是特定于Django的东西,我所知道的所有现代Web框架都是如此,它们都有这个非常简单的内置Web服务器,我们仅用于开发目的,原因很明显,它没有因为我们已经拥有非常强大的Web服务器,所以重新发明轮子的任何意义。

Another important thing is that you can use one web server for one or more web applications that might be developed using different programming languages and web frameworks.

另一个重要的事情是,您可以将一个Web服务器用于可能使用不同编程语言和Web框架开发的一个或多个Web应用程序。


推荐阅读
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
author-avatar
吉尔伽美什2702933250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有