@@ -317,12 +317,15 @@ class Server(Command):
317317
318318 :param host: server host
319319 :param port: server port
320- :param use_debugger: if False, will no longer use Werkzeug debugger.
320+ :param use_debugger: Flag whether to default to using the Werkzeug debugger.
321321 This can be overriden in the command line
322- by passing the **-d** flag.
323- :param use_reloader: if False, will no longer use auto-reloader.
322+ by passing the **-d** or **-D** flag.
323+ Defaults to False, for security.
324+
325+ :param use_reloader: Flag whether to use the auto-reloader.
326+ Default to True when debugging.
324327 This can be overriden in the command line by
325- passing the **-r** flag.
328+ passing the **-r**/**-R** flag.
326329 :param threaded: should the process handle each request in a separate
327330 thread?
328331 :param processes: number of processes to spawn
@@ -332,14 +335,14 @@ class Server(Command):
332335
333336 help = description = 'Runs the Flask development server i.e. app.run()'
334337
335- def __init__ (self , host = '127.0.0.1' , port = 5000 , use_debugger = True ,
336- use_reloader = True , threaded = False , processes = 1 ,
338+ def __init__ (self , host = '127.0.0.1' , port = 5000 , use_debugger = False ,
339+ use_reloader = None , threaded = False , processes = 1 ,
337340 passthrough_errors = False , ** options ):
338341
339342 self .port = port
340343 self .host = host
341344 self .use_debugger = use_debugger
342- self .use_reloader = use_reloader
345+ self .use_reloader = use_reloader if use_reloader is not None else use_debugger
343346 self .server_options = options
344347 self .threaded = threaded
345348 self .processes = processes
@@ -377,41 +380,49 @@ def get_options(self):
377380 options += (Option ('-d' , '--debug' ,
378381 action = 'store_true' ,
379382 dest = 'use_debugger' ,
380- help = "(no-op for compatibility)" ),)
383+ help = "(no-op for compatibility. USE '--no-debug' IN PRODCUTION CODE)" ,
384+ default = True ),)
381385 options += (Option ('-D' , '--no-debug' ,
382386 action = 'store_false' ,
383387 dest = 'use_debugger' ,
384- default = self .use_debugger ),)
388+ help = 'disable the Werkzeug debugger' ,
389+ default = True ),)
385390
386391 else :
387392 options += (Option ('-d' , '--debug' ,
388393 action = 'store_true' ,
389394 dest = 'use_debugger' ,
390- default = self .use_debugger ),)
395+ help = 'enable the Werkzeug debugger (DO NOT use in production code)' ,
396+ default = False ),)
391397 options += (Option ('-D' , '--no-debug' ,
392398 action = 'store_false' ,
393399 dest = 'use_debugger' ,
394- help = "(no-op for compatibility)" ),)
400+ help = "(no-op for compatibility)" ,
401+ default = False ),)
395402
396403 if self .use_reloader :
397404 options += (Option ('-r' , '--reload' ,
398405 action = 'store_true' ,
399406 dest = 'use_reloader' ,
400- help = "(no-op for compatibility)" ),)
407+ help = "(no-op for compatibility)" ,
408+ default = True ),)
401409 options += (Option ('-R' , '--no-reload' ,
402410 action = 'store_false' ,
403411 dest = 'use_reloader' ,
404- default = self .use_reloader ),)
412+ help = 'do not monitor Python files for changes' ,
413+ default = True ),)
405414
406415 else :
407416 options += (Option ('-r' , '--reload' ,
408417 action = 'store_true' ,
409418 dest = 'use_reloader' ,
410- default = self .use_reloader ),)
419+ help = 'monitor Python files for changes' ,
420+ default = False ),)
411421 options += (Option ('-R' , '--no-reload' ,
412422 action = 'store_false' ,
413423 dest = 'use_reloader' ,
414- help = "(no-op for compatibility)" ),)
424+ help = "(no-op for compatibility)" ,
425+ default = False ),)
415426
416427 return options
417428
0 commit comments