1

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

manage.py runserver --settings=local_settings

在 Git 中,您可以通过以下方式分配别名:

git config --global alias.ci commit

然后运行

git ci -m "My latest commit"
4

3 回答 3

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
于 2013-02-07T17:32:45.377 回答
2

好吧,有django-shortcuts

老实说,我没有看到这样做有更深层次的意义(除非你可能在 Windows 上,但即使应该有办法)。就像 cms_mgr 在他的评论中已经指出的那样,可以在您的 shell 中轻松定义别名。

这是我的一个例子~./bashrc

 alias r='./manage.py runserver 127.0.0.1:8000'
于 2013-02-07T22:12:30.973 回答
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)

于 2013-02-07T22:20:41.010 回答