django1/django/contrib/staticfiles/management/commands/runserver.py

32 lines
1.3 KiB
Python
Raw Normal View History

from django.conf import settings
from django.contrib.staticfiles.handlers import StaticFilesHandler
from django.core.management.commands.runserver import \
Command as RunserverCommand
2013-11-03 04:12:09 +08:00
class Command(RunserverCommand):
help = "Starts a lightweight Web server for development and also serves static files."
def add_arguments(self, parser):
super().add_arguments(parser)
2016-03-29 06:33:29 +08:00
parser.add_argument(
'--nostatic', action="store_false", dest='use_static_handler',
2016-03-29 06:33:29 +08:00
help='Tells Django to NOT automatically serve static files at STATIC_URL.',
)
parser.add_argument(
'--insecure', action="store_true", dest='insecure_serving',
2016-03-29 06:33:29 +08:00
help='Allows serving static files even if DEBUG is False.',
)
def get_handler(self, *args, **options):
"""
Return the static files serving handler wrapping the default handler,
if static files should be served. Otherwise return the default handler.
"""
handler = super().get_handler(*args, **options)
use_static_handler = options['use_static_handler']
insecure_serving = options['insecure_serving']
if use_static_handler and (settings.DEBUG or insecure_serving):
return StaticFilesHandler(handler)
return handler