猴子补丁Django runserver命令

时间:2015-12-09 12:00:26

标签: python django

我想将--env=prod/beta/alpha/dev添加到runserver,以便我可以python manage.py runserver --env=prod为例。

我已尝试添加到settings.py

parser = CommandParser(None)
parser.add_argument('--env')
parser.add_argument('args', nargs='*')  # catch-all

try:
    options, args = parser.parse_known_args(sys.argv[2:])
except CommandError:
    pass  # Ignore any option errors at this point.

APP_ENV = options.env or 'dev' 

但我得到了:

usage: manage.py runserver [-h] [--version] [-v {0,1,2,3}]
                       [--settings SETTINGS] [--pythonpath PYTHONPATH]
                       [--traceback] [--no-color] [--ipv6] [--nothreading]
                       [--noreload] [--nostatic] [--insecure]
                       [addrport]
manage.py runserver: error: unrecognized arguments: --env=beta

任何想法我怎么能修补runserver

1 个答案:

答案 0 :(得分:1)

要修改runserver,您可以创建custom management command。您应该能够继承runserver并添加额外的参数。

您可能会发现设置环境变量更容易,而不是更改runserver命令。在您的设置中,您可以执行以下操作:

import os
env = os.getenv('ENV') or 'dev'

然后你将用

运行开发服务器
ENV=dev python manage.py runserver