【发布时间】:2013-03-01 15:19:51
【问题描述】:
每次我使用python manage.py shell 启动shell 时,我都希望自动执行几行代码。 (在我的情况下,它将是 import django, my_app 样式的一些导入行。)
我该怎么做?
【问题讨论】:
-
您可以安装 iPython 并设置启动脚本。如果可用,Django 将检测并使用 iPython。
每次我使用python manage.py shell 启动shell 时,我都希望自动执行几行代码。 (在我的情况下,它将是 import django, my_app 样式的一些导入行。)
我该怎么做?
【问题讨论】:
django-extensions 包可以满足您的需求。如果你pip install django-extensions,并且你可以像往常一样添加应用程序(在你的应用程序列表中,然后是run syncdb),那么你会得到一个名为shell_plus的命令。
如果您运行python manage.py shell_plus,该命令会自动加载所有您的模型。真的好用!如果您结合 IPython 的强大功能,您将获得一个使用 django ORM 与您的模型交互的良好环境。
更多信息:
希望这会有所帮助。它可能比编写启动脚本的工作量少。作为一个额外的 django-extensions 为您提供了很棒的功能,例如 graph_models(它可以为您提供数据库的 png 绘图)和 show_urls。
【讨论】:
我最终为 IPython.frontend.terminal.embed.InteractiveShellEmbed.__call__ 添加了我想要的定义。 (我知道很多人反对猴子补丁,但我发现在这种情况下它是一个很好的解决方案。)
【讨论】: