【发布时间】:2013-06-24 22:12:40
【问题描述】:
几乎每次我在 Django 中使用 manage.py shell 时,我都希望导入某些东西。例如,我想从我的 models.py 模块中导入 *。目前,我的解决方法是将所有导入文件放在一个名为 s.py 的文件中,然后在启动 shell 后键入 execfile('s.py')。
如何自定义 manage.py 以便在我启动 shell 时自动执行导入?我正在使用 Django 1.4。谢谢。
编辑:我正在添加更多细节以使我的问题更清楚。
这是我最初做的:
bash> python manage.py shell
>>> from mysite.app.models import *
>>> from mysite.app2.models import *
>>> import decimal
>>> D = decimal.Decimal
# Now I am ready to work in this shell.
每次启动 shell 时都输入 4 行样板代码很烦人。所以我把这 4 行放在一个文件 s.py 中。现在我这样做:
bash> python manage.py shell
>>> execfile('s.py')
# Now I am ready to work.
我也想摆脱execfile('s.py')。我想让 manage.py 在我启动 shell 时自动执行这些导入。
【问题讨论】:
-
通常你不想从 xxxx 导入 *,因为这可能会导致其他模块出现问题
-
PepperoniPizza: import * 在这种情况下很好,因为我是在交互式 shell 中进行的。
-
@SerMetAla 您是否考虑过使用 PYTHONSTARTUP UNIX 环境变量(如下面的答案所示)?
标签: python django django-manage.py manage.py