我和Django一起工作,一直在使用Django shell.恼人的是,虽然Django服务器重新加载代码更改,但shell不会,因此每次我对正在测试的方法进行更改时,我都需要退出shell并重新启动它,重新导入我需要的所有模块,重新初始化我需要的所有变量等.虽然iPython history在这方面节省了大量输入,但这仍然是一个难题.有没有办法让django shell自动重新加载,就像django development server那样?

我知道reload(),但是我导入了很多模型,并且通常使用from app.models import *语法,所以reload()帮助不大.

推荐答案

我推荐使用Django-Extensions项目,就像前面Dongweiming所说的那样.但是,不要只使用‘shell_plus’管理命令,而要使用:

manage.py shell_plus --notebook

这将在您的Web浏览器上打开一个IPython笔记本.在单元格中编写代码、导入等,然后运行它.

When you change your modules, just click the notebook menu item 'Kernel->Restart'

现在,你的代码正在使用修改过的模块.

Django相关问答推荐

我希望用户能够预订相同的桌子,但不是在同一时间

我无法在Django模板中使用Get_Foo_Display

社工/社工简戈

Templatetag 在 Django 4.2 模板 IF 条件中不起作用

在不指定查找的情况下调用 prefetch_lated() 有用吗?

Django通用列表视图与多查询搜索

Django Rest Framework 认证类覆盖 request.user

Django 仅预取相关模型的最新对象

基于模型多选字段在模板django中显示结果

"" 需要有字段 "id" 的值才能使用这种多对多关系

Django:通过manage.py使用服务器和gunicorn等其他服务器之间的区别.哪个更好?

使用 XMLHttpRequest 提示下载文件

Django 1.9 中 django.db.models.loading.get_model() 的类似功能是什么?

Python Django 模板和测试变量是否为空或空字符串

在 Django 中扩展 urlize

django post_save 更新信号

Django ALLOWED_HOSTS IP 范围

'function' 对象没有属性 'as_view'

AWS Cognito 作为网站的 Django 身份验证后端

django.db.utils.OperationalError 无法连接到服务器