mysql - 如何以只读模式进入 Django shell?
问题描述
我有兴趣使用一种只允许读取操作的 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?
解决方案
这比人们预期的要复杂一些,因为听起来您需要一组单独的设置来用于shell
命令而不是正常的 django 操作。所以三步过程:
- 创建自己的路由器类
- 创建一个单独的设置文件以与
shell
命令一起使用 - 使用环境变量或单独
manage.py
的来运行shell
命令
推荐阅读
- flutter - 如何使屏幕在颤动中可滚动?
- html - 将背景图片定位在 CSS 底部
- python - Python xml - 删除空格以获取对齐的 xml 文档
- javascript - 添加自定义标签会停止呈现页面
- oracle - 我想在 PL/SQL 中解决这个问题 EXCEPTION 命令不起作用
- database - 基于条目更新周期开始日期的算法
- c# - 从与 C# 中的 alt 值匹配的字符串中删除整个 img 标记
- pdf - 使用 syncfusion 库生成 pdf 文件 xamarin.forms
- flutter - 如何在动画列表中维护小部件的状态
- javascript - NuxtJS 和 Firebase:错误:[vuex] 不会在突变处理程序之外改变 vuex 存储状态