在我的 Django 项目中,我想启动一个 python shell,在其中我可以对数据库进行简单的更改(保存新记录、更新旧记录等),然后在退出 shell 时自动恢复。与运行基本相同的功能:
rails console --sandbox
在 Ruby on Rails 项目中。我并不是在寻找传统沙箱的所有功能,例如阻止 Web 服务调用,而是在寻找基本的数据库回滚。这——或者类似的东西——在 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
关于python - Django:在沙箱环境中运行python shell,类似于rails console --sandbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48723683/