python - 将 Django 模型与已创建的数据库表一起使用
问题描述
data_db
我有一个包含一些表的数据库(让我们称之为)。我想创建一个仪表板来显示来自 的数据data_db
,因此我为此创建了一个 Django 项目。
当我想从其中的一个表中获取数据时data_db
,有没有办法做到这一点Models
?(我想要使用 DB 进行 Django 安全管理)还是必须使用原始 SQL?
注意: ' 表中存在现有数据data_db
,我不想在默认 Django DB 上创建具有相同数据的新表。我还使用了 2 个数据库,Django 默认数据库,data_db
并且我创建了一个数据库路由器,data_db
以防止 Django 在其中创建所有表。
谢谢。
解决方案
是的。事实上,Django 甚至可以帮助您创建模型。没有借助 Django 迁移的模型是非托管模型。这些managed = False
在类中有一个属性Meta
,所以类似于:
class MyModel(models.Model):
# … fields …
class Meta:
managed = False
如果您因此编写这些非托管模型,则可以使用 Django ORM 进行查询,而 Django 不会尝试为这些表创建新模型。
当然,指定与数据库匹配的模型很麻烦。因此 Django 经常可以根据表构建模型。您可以使用inspectdb
命令 [Django-doc]生成模型。
您可以在 with 上生成这些模型stdout
:
python3 manage.py inspectdb
或者您可以通过 I/O 重定向将这些保存到文件中:
python3 manage.py inspectdb > app_name/models.py
推荐阅读
- mysql - SQL 存储过程:如果语句未按预期运行
- mongodb - 如何显示最大编号的客户姓名。MongoDB中的订单?
- reactjs - 如何使用 d3.select 选择链接?
- javascript - 将对象绑定到 Vue 多选
- wordpress - 在网格中显示类别帖子
- google-api - 需要在 Google Javascript API 中超过 1200 个引荐来源网址限制
- angular - 我应该使用哪个 rxjs 运算符从可观察数组中获取值以根据对象属性进行过滤
- reactjs - 在单独的 d3 图中连接点
- openshift - Openshift 3.11 + 503 响应
- testing - Ubuntu 18 自动完成错误?“bash:cd:参数太多”