7👍
It comes down to the goal of the Django project and the efficiency gains associated with re-use (as opposed to reinventing the wheel).
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”.
That goal can be accomplished with a simple single-threaded web server that simply facilitates development and testing.
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.
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.
9👍
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
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.)
- Remove line breaks from Django template
- Installed pytest but running `pytest` in bash returns `not found`
3👍
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.
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.
- Can't fix "zipimport.ZipImportError: can't decompress data; zlib not available" when I type in "python3.6 get-pip.py"
- Django TransactionManagementError when using signals
- Why don't Django and CherryPy support HTTP verb-based dispatch natively?