Code

Ticket #7000: open_browser.1.diff

File open_browser.1.diff, 4.1 KB (added by jezdez, 6 years ago)

patch including docs

Line 
1Index: django/core/management/commands/runserver.py
2===================================================================
3--- django/core/management/commands/runserver.py        (Revision 7409)
4+++ django/core/management/commands/runserver.py        (Arbeitskopie)
5@@ -7,6 +7,8 @@
6     option_list = BaseCommand.option_list + (
7         make_option('--noreload', action='store_false', dest='use_reloader', default=True,
8             help='Tells Django to NOT use the auto-reloader.'),
9+        make_option('--browser', action='store_true', dest='open_browser',
10+            help='Tells Django to open a browser.'),
11         make_option('--adminmedia', dest='admin_media_path', default='',
12             help='Specifies the directory from which to serve admin media.'),
13     )
14@@ -37,6 +39,7 @@
15             raise CommandError("%r is not a valid port number." % port)
16 
17         use_reloader = options.get('use_reloader', True)
18+        open_browser = options.get('open_browser', False)
19         admin_media_path = options.get('admin_media_path', '')
20         shutdown_message = options.get('shutdown_message', '')
21         quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C'
22@@ -51,6 +54,10 @@
23             try:
24                 path = admin_media_path or django.__path__[0] + '/contrib/admin/media'
25                 handler = AdminMediaHandler(WSGIHandler(), path)
26+                if open_browser:
27+                    import webbrowser
28+                    url = "http://%s:%d/" % (addr, port)
29+                    webbrowser.open(url)
30                 run(addr, int(port), handler)
31             except WSGIServerException, e:
32                 # Use helpful error messages instead of ugly tracebacks.
33@@ -70,7 +77,7 @@
34                 if shutdown_message:
35                     print shutdown_message
36                 sys.exit(0)
37-        if use_reloader:
38+        if use_reloader and not open_browser:
39             from django.utils import autoreload
40             autoreload.main(inner_run)
41         else:
42Index: extras/django_bash_completion
43===================================================================
44--- extras/django_bash_completion       (Revision 7409)
45+++ extras/django_bash_completion       (Arbeitskopie)
46@@ -42,7 +42,7 @@
47     prev="${COMP_WORDS[COMP_CWORD-1]}"
48 
49     # Standalone options
50-    opts="--help --settings --pythonpath --noinput --noreload --format --indent --verbosity --adminmedia --version"
51+    opts="--help --settings --pythonpath --noinput --noreload --browser --format --indent --verbosity --adminmedia --version"
52     # Actions
53     actions="adminindex createcachetable dbshell diffsettings \
54              dumpdata flush inspectdb loaddata reset runfcgi runserver \
55Index: docs/man/django-admin.1
56===================================================================
57--- docs/man/django-admin.1     (Revision 7409)
58+++ docs/man/django-admin.1     (Arbeitskopie)
59@@ -53,7 +53,7 @@
60 .B runfcgi help
61 for help on the KEY=val pairs.
62 .TP
63-.BI "runserver [" "\-\-noreload" "] [" "\-\-adminmedia=ADMIN_MEDIA_PATH" "] [" "port|ipaddr:port" "]"
64+.BI "runserver [" "\-\-noreload" "] [" "\-\-browser" "] [" "\-\-adminmedia=ADMIN_MEDIA_PATH" "] [" "port|ipaddr:port" "]"
65 Starts a lightweight Web server for development.
66 .TP
67 .BI "shell [" "\-\-plain" "]"
68@@ -136,6 +136,9 @@
69 .TP
70 .I \-\-adminmedia=ADMIN_MEDIA_PATH
71 Specifies the directory from which to serve admin media when using the development server.
72+.TP
73+.I \-\-browser
74+Open the URL of the development server in the default web browser.
75 
76 .SH "ENVIRONMENT"
77 .TP
78Index: docs/django-admin.txt
79===================================================================
80--- docs/django-admin.txt       (Revision 7409)
81+++ docs/django-admin.txt       (Arbeitskopie)
82@@ -389,6 +389,18 @@
83 
84     django-admin.py runserver --adminmedia=/tmp/new-admin-style/
85 
86+--browser
87+~~~~~~~~~
88+
89+Use the ``--browser`` option to tell Django to open the URL of the development
90+server automatically with the system web browser. As soon as you start it with
91+this option the use of the auto-reloader is disabled to prevent a recurring
92+opening in the browser.
93+
94+Example usage::
95+
96+    django-admin.py runserver --browser
97+
98 --noreload
99 ~~~~~~~~~~
100