【发布时间】:2019-01-15 09:17:35
【问题描述】:
我有一个位于 /home/pi/Desktop/Databsaes/data.db 的 sqlite 数据库,并希望通过我的 models.py 脚本访问它。
要在普通命令提示符下查看表格内容,我会执行:
sqlite3
sqlite> .open data.db
sqlite> SELECT * from table1
我一直在阅读这个official tutorial,但我不明白如何访问我的本地数据库并执行上述操作。
在 SQL 术语中,QuerySet 等同于 SELECT 语句,
...但是我怎样才能直接在我的models.py 脚本中执行类似的操作呢?
Models.py 仍然保持不变:
from __future__ import unicode_literals
from django.db import models
# Create your models here
根据我收集的信息,可以使用字段查找,它为QuerySet 方法指定参数(例如get())。
编辑
我按照tutorial 将数据库导入 Django。
但是我的问题是:导入后通过单独的进程添加到该数据库的新数据是否可以从 Django 一侧看到?
如果您确实希望允许 Django 管理表的生命周期,则需要将上面的 managed 选项更改为 True(或者直接将其删除,因为 True 是其默认值)。
我不知道“管理表的生命周期”是否意味着在添加后使用更新的数据更新数据库。
【问题讨论】:
-
有什么变化?您的意思是架构更改?不,它们不会自动导入。您需要自己编辑 models.py。你真的做了这么多,这是一个问题吗?理想情况下,您会将数据库的管理转移到 Django 本身并通过迁移进行更改。
-
不幸的是,我正在以非常快的速度(每分钟 1000 次)记录来自传感器的数据,但是我只需要每 30 秒访问一次数据库。我一直在寻找一种在每次需要读取数据库时自动更新数据库的方法。如果我将数据库管理移到 Django 中,它 (Django) 可以处理如此快速的架构更改吗?
-
我不确定你在这里问什么。由您的单独进程添加的数据不会更改架构,并且可以通过 Django 立即使用。
-
我有一个单独的进程每 30 秒将数据记录到数据库中。我需要在 Django 中读取这个数据库并更新我的网页(也是每 30 秒一次)。我的问题是如何将数据库管理移动到 Django 而无需修改我的单独进程。对任何不清楚的地方表示抱歉。
-
再一次,是的。数据在数据库中。 Django 会查询它。没有进行导入。
标签: django database sqlite django-models