Django: 运行 a python shell 在沙盒环境下,类似rails console --sandbox

Django: running a python shell in a sandbox environment, similar to rails console --sandbox

在我的 Django 项目中,我想启动一个 python shell,我可以在其中对我的数据库进行简单的更改(保存新记录、更新旧记录等),然后当我退出 shell 时自动恢复。与 运行:

基本相同的功能
rails console --sandbox

在 Rails 项目的 Ruby 中。我不是在寻找传统沙箱的所有功能,例如阻止网络服务调用,只是基本的数据库回滚。这在 Django 中是否可行?

我想将其用于测试目的。我知道我可以使用 Django 的测试基础架构来执行此操作,但在一些基本实例中这会非常有用(例如,快速确认特定模型是否按照我期望的方式运行)。

这主要在 python manage.py shell 中完成(或者在 INSTALLED_APPS 中使用 django_extensions 更好 ... shell_plus)这是 python 命令行,您可以从中操作测试数据并测试一些您不想在测试之前编程的功能。据我所知,在 django shell 中回滚是不可能的,但您可以使用不同的数据库设置单独 settings.py,这样您将拥有另一个数据库,您可以在其中进行实验 shell 而不会破坏您的数据。

这里有一些来源:

Django Best Practice: Settings file for multiple environments

Django shell (from DJango docs)