mirror of https://github.com/django/django.git
Fixed #35591 -- Added unsuitable for production console warning to runserver.
This commit is contained in:
parent
9582745257
commit
69aa13ffb9
|
@ -188,3 +188,12 @@ class Command(BaseCommand):
|
||||||
f"Quit the server with {quit_command}.",
|
f"Quit the server with {quit_command}.",
|
||||||
file=self.stdout,
|
file=self.stdout,
|
||||||
)
|
)
|
||||||
|
if os.environ.get("HIDE_PRODUCTION_WARNING") != "true":
|
||||||
|
self.stdout.write(
|
||||||
|
self.style.WARNING(
|
||||||
|
"WARNING: This is a development server. Do not use it in a "
|
||||||
|
"production setting. Use a production WSGI or ASGI server "
|
||||||
|
"instead.\nFor more information on production servers see: "
|
||||||
|
"https://docs.djangoproject.com/en/stable/howto/deployment/"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
|
@ -134,6 +134,9 @@ You'll see the following output on the command line:
|
||||||
Starting development server at http://127.0.0.1:8000/
|
Starting development server at http://127.0.0.1:8000/
|
||||||
Quit the server with CONTROL-C.
|
Quit the server with CONTROL-C.
|
||||||
|
|
||||||
|
WARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.
|
||||||
|
For more information on production servers see: https://docs.djangoproject.com/en/stable/howto/deployment/
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Ignore the warning about unapplied database migrations for now; we'll deal
|
Ignore the warning about unapplied database migrations for now; we'll deal
|
||||||
with the database shortly.
|
with the database shortly.
|
||||||
|
|
|
@ -947,6 +947,20 @@ multithreaded by default.
|
||||||
Uses IPv6 for the development server. This changes the default IP address from
|
Uses IPv6 for the development server. This changes the default IP address from
|
||||||
``127.0.0.1`` to ``::1``.
|
``127.0.0.1`` to ``::1``.
|
||||||
|
|
||||||
|
.. envvar:: HIDE_PRODUCTION_WARNING
|
||||||
|
|
||||||
|
.. versionadded:: 5.2
|
||||||
|
|
||||||
|
By default, a warning is printed to the console that ``runserver`` is not
|
||||||
|
suitable for production:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
WARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.
|
||||||
|
For more information on production servers see: https://docs.djangoproject.com/en/stable/howto/deployment/
|
||||||
|
|
||||||
|
Set this environment variable to ``"true"`` to hide this warning.
|
||||||
|
|
||||||
Examples of using different ports and addresses
|
Examples of using different ports and addresses
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -194,7 +194,10 @@ Logging
|
||||||
Management Commands
|
Management Commands
|
||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
* ...
|
* A new warning is printed to the console when running :djadmin:`runserver` that
|
||||||
|
``runserver`` is unsuitable for production. This warning can be hidden by
|
||||||
|
setting the :envvar:`HIDE_PRODUCTION_WARNING` environment variable to
|
||||||
|
``"true"``.
|
||||||
|
|
||||||
Migrations
|
Migrations
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
|
@ -1597,6 +1597,13 @@ class ManageRunserver(SimpleTestCase):
|
||||||
"Starting development server at http://0.0.0.0:8000/",
|
"Starting development server at http://0.0.0.0:8000/",
|
||||||
self.output.getvalue(),
|
self.output.getvalue(),
|
||||||
)
|
)
|
||||||
|
self.assertIn(
|
||||||
|
"WARNING: This is a development server. Do not use it in a "
|
||||||
|
"production setting. Use a production WSGI or ASGI server instead."
|
||||||
|
"\nFor more information on production servers see: "
|
||||||
|
"https://docs.djangoproject.com/en/stable/howto/deployment/",
|
||||||
|
self.output.getvalue(),
|
||||||
|
)
|
||||||
|
|
||||||
def test_on_bind(self):
|
def test_on_bind(self):
|
||||||
self.cmd.addr = "127.0.0.1"
|
self.cmd.addr = "127.0.0.1"
|
||||||
|
@ -1606,6 +1613,30 @@ class ManageRunserver(SimpleTestCase):
|
||||||
"Starting development server at http://127.0.0.1:14437/",
|
"Starting development server at http://127.0.0.1:14437/",
|
||||||
self.output.getvalue(),
|
self.output.getvalue(),
|
||||||
)
|
)
|
||||||
|
self.assertIn(
|
||||||
|
"WARNING: This is a development server. Do not use it in a "
|
||||||
|
"production setting. Use a production WSGI or ASGI server instead."
|
||||||
|
"\nFor more information on production servers see: "
|
||||||
|
"https://docs.djangoproject.com/en/stable/howto/deployment/",
|
||||||
|
self.output.getvalue(),
|
||||||
|
)
|
||||||
|
|
||||||
|
@mock.patch.dict(os.environ, {"HIDE_PRODUCTION_WARNING": "true"})
|
||||||
|
def test_hide_production_warning_with_environment_variable(self):
|
||||||
|
self.cmd.addr = "0"
|
||||||
|
self.cmd._raw_ipv6 = False
|
||||||
|
self.cmd.on_bind("8000")
|
||||||
|
self.assertIn(
|
||||||
|
"Starting development server at http://0.0.0.0:8000/",
|
||||||
|
self.output.getvalue(),
|
||||||
|
)
|
||||||
|
self.assertNotIn(
|
||||||
|
"WARNING: This is a development server. Do not use it in a "
|
||||||
|
"production setting. Use a production WSGI or ASGI server instead."
|
||||||
|
"\nFor more information on production servers see: "
|
||||||
|
"https://docs.djangoproject.com/en/stable/howto/deployment/",
|
||||||
|
self.output.getvalue(),
|
||||||
|
)
|
||||||
|
|
||||||
@unittest.skipUnless(socket.has_ipv6, "platform doesn't support IPv6")
|
@unittest.skipUnless(socket.has_ipv6, "platform doesn't support IPv6")
|
||||||
def test_runner_addrport_ipv6(self):
|
def test_runner_addrport_ipv6(self):
|
||||||
|
|
Loading…
Reference in New Issue