[英]Monkey patch Django runserver command
我想将--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
?
要修改运行服务器,您可以创建一个自定义管理命令 。 您应该能够继承runserver并添加其他参数。
您可能会发现,设置环境变量比更改runserver命令更容易。 在您的设置中,您将执行以下操作:
import os
env = os.getenv('ENV') or 'dev'
然后,您将使用以下命令运行开发服务器
ENV=dev python manage.py runserver
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.