django中是否有命令别名

时间:2013-02-07 17:20:23

标签: django

我想问一下像Git那样Django中是否存在一种命令别名。 因为为我输入一些命令非常繁琐我在django中有一个local_settings,这导致我经常输入这个命令。

manage.py runserver --settings=local_settings

在Git中,您可以这种方式指定别名:

git config --global alias.ci commit

然后运行

git ci -m "My latest commit"

3 个答案:

答案 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)