Refs #35591 -- Emphasized that runserver is not suitable for production.

This commit is contained in:
Andrew Miller 2024-08-07 14:47:05 +01:00 committed by Sarah Boyce
parent 49815f70e4
commit cec62fb99e
3 changed files with 15 additions and 6 deletions

View File

@ -36,6 +36,14 @@ Some of the checks described below can be automated using the :option:`check
--deploy` option. Be sure to run it against your production settings file as
described in the option's documentation.
Switch away from ``manage.py runserver``
========================================
The :djadmin:`runserver` command is not designed for a production setting. Be
sure to switch to a production-ready WSGI or ASGI server. For a few common
options, see :doc:`WSGI servers </howto/deployment/wsgi/index>` or
:doc:`ASGI servers </howto/deployment/asgi/index>`.
Critical settings
=================

View File

@ -12,7 +12,8 @@ the scope of what Django can give you as guidance.
Django, being a web framework, needs a web server in order to operate. And
since most web servers don't natively speak Python, we need an interface to
make that communication happen.
make that communication happen. The :djadmin:`runserver` command starts a
lightweight development server, which is not suitable for production.
Django currently supports two interfaces: WSGI and ASGI.

View File

@ -870,11 +870,11 @@ are reserved for the superuser (root).
This server uses the WSGI application object specified by the
:setting:`WSGI_APPLICATION` setting.
DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through
security audits or performance tests. (And that's how it's gonna stay. We're in
the business of making web frameworks, not web servers, so improving this
server to be able to handle a production environment is outside the scope of
Django.)
.. warning:: DO NOT USE THIS SERVER IN A PRODUCTION SETTING.
This lightweight development server has not gone through security audits or
performance tests, hence is unsuitable for production. Making this server
able to handle a production environment is outside the scope of Django.
The development server automatically reloads Python code for each request, as
needed. You don't need to restart the server for code changes to take effect.