每次使用python manage.py shell
启动shell时,我都希望自动执行几行。 (在我的例子中,它将是import django, my_app
风格的一些导入行。)
我该怎么做?
答案 0 :(得分:2)
包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等功能。
答案 1 :(得分:-1)
我最终将monkeypatching IPython.frontend.terminal.embed.InteractiveShellEmbed.__call__
添加到我想要的定义中。 (我知道很多人反对monkeypatching,但在这种情况下我发现它是一个很好的解决方案。)