如何以只读模式进入Django Shell?

时间:2018-12-05 21:09:42

标签: mysql django

我对使用仅允许读取操作的Django shell形式感兴趣。到目前为止,我已经阅读了这篇博客文章(https://chase-seibert.github.io/blog/2012/12/21/read-only-django-shell.html),该文章似乎基于将django.db.router.db_for_write设置为None

这是推荐的方法吗?从https://docs.djangoproject.com/en/2.1/topics/db/multi-db/#using-routers可以理解,django.db.router是“主路由器”,我不清楚是否可以在不影响数据库运行环境的情况下修改其属性。

也许还有另一种方法,例如创建仅具有读取权限的数据库用户(在我的情况下为MySQL),然后启动以该用户身份连接的Django shell?

1 个答案:

答案 0 :(得分:0)

这比您预期的要复杂一些,因为听起来shell命令需要使用一组单独的设置,而不是普通的django操作。所以分三步走:

  1. 创建自己的路由器类
  2. 创建一个单独的设置文件,以与shell命令一起使用
  3. 使用环境变量或单独的manage.py来运行shell命令