我想问一下 Django 中是否有像 Git 那样的命令别名。因为输入一些命令非常乏味,因为我在 django 中有一个 local_settings,这导致我经常输入这个命令。
manage.py runserver --settings=local_settings
在 Git 中,您可以通过以下方式分配别名:
git config --global alias.ci commit
然后运行
git ci -m "My latest commit"
我想问一下 Django 中是否有像 Git 那样的命令别名。因为输入一些命令非常乏味,因为我在 django 中有一个 local_settings,这导致我经常输入这个命令。
manage.py runserver --settings=local_settings
在 Git 中,您可以通过以下方式分配别名:
git config --global alias.ci commit
然后运行
git ci -m "My latest commit"
您可以在 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
好吧,有django-shortcuts。
老实说,我没有看到这样做有更深层次的意义(除非你可能在 Windows 上,但即使应该有办法)。就像 cms_mgr 在他的评论中已经指出的那样,可以在您的 shell 中轻松定义别名。
这是我的一个例子~./bashrc
:
alias r='./manage.py runserver 127.0.0.1:8000'
我们使用 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)