我想问一下像Git那样Django中是否存在一种命令别名。 因为为我输入一些命令非常繁琐我在django中有一个local_settings,这导致我经常输入这个命令。
manage.py runserver --settings=local_settings
在Git中,您可以这种方式指定别名:
git config --global alias.ci commit
然后运行
git ci -m "My latest commit"
答案 0 :(得分:2)
您可以在settings.py。
的底部添加这些行if 'PLATFORM' not in os.environ:
from local_settings import *
elif os.environ['PLATFORM'] == 'TEST':
from stage_settings import *
只需在local_settings.py和stage_settings.py中添加一些需要覆盖的参数,不要忘记在生产和登台平台上创建环境变量。
现在您可以使用普通的Django命令在任何地方运行您的服务器。
manage.py runserver
答案 1 :(得分:2)
嗯,有django-shortcuts。
老实说,我没有看到这样做的更深层次的意义(除非你或许在Windows上,但即使应该有办法)。就像他的评论中已经指出的cms_mgr一样,可以在shell中轻松定义别名。
以下是我~./bashrc
的一个例子:
alias r='./manage.py runserver 127.0.0.1:8000'
答案 2 :(得分:0)
我们使用Makefile来定义快捷方式,甚至将几个命令链接在一起,例如用于部署过程。
以下是这样一个Makefile的样子:
VIRTUAL_ENV=env
MANAGE_PY=$(VIRTUAL_ENV)/bin/python manage.py
PIP_BIN=$(VIRTUAL_ENV)/bin/pip
SETTINGS_DEVELOPMENT=project.settings
all: environment requirements
environment:
test -d "$(VIRTUAL_ENV)" || virtualenv --no-site-packages $(VIRTUAL_ENV)
requirements: environment
$(PIP_BIN) install -r requirements.txt
createsuperuser:
$(MANAGE_PY) createsuperuser --settings=$(SETTINGS_DEVELOPMENT)
shell:
$(MANAGE_PY) shell --settings=$(SETTINGS_DEVELOPMENT)
privateserver:
$(MANAGE_PY) runserver --settings=$(SETTINGS_DEVELOPMENT)
server:
$(MANAGE_PY) runserver 0.0.0.0:8000 --settings=$(SETTINGS_DEVELOPMENT)
makemessages:
$(MANAGE_PY) makemessages --ignore=env --all --settings=$(SETTINGS_DEVELOPMENT)
compilemessages:
$(MANAGE_PY) compilemessages --settings=$(SETTINGS_DEVELOPMENT)
所以我可以致电
make server
使用我的特殊开发设置在LAN上启动服务器。 由于这个Makefile可以添加到git repo,其他人也可以使用这些命令。
(是的,我们使用virtualenv)