【问题标题】:How to manually make queries into the DB using Django?如何使用 Django 手动查询数据库?
【发布时间】:2018-01-13 03:03:55
【问题描述】:

有时,我必须进行意味着数据库丢失的迁移。

然后我必须手动转到 /admin 页面并重新插入每条数据以开始探索我的方法。

那么,当我创建 models.Model 类时,有什么方法可以手动将数据插入到数据库中?

(我使用的是默认的 Django 数据库:sqlite)

【问题讨论】:

  • 当sqlite3 文件处于已知良好状态时,您可以简单地通过复制sqlite3 文件来保存数据库的副本。如果出现问题,您可以使用该副本。
  • 但是我想学习如何与数据库交互。

标签: python django database sqlite


【解决方案1】:

您可以使用固定装置。 一次将所有数据插入数据库时​​运行此命令

python manage.py dumpdata <app> > <file_path>.json

然后将文件存储在路径中

<any application>/fixtures/<fixture name>.json

之后,您可以使用以下命令加载此数据

python manage.py loaddata <fixture name>

您也可以编写自己的自定义 django 迁移来插入如下数据

from __future__ import unicode_literals
from django.db import migrations


def create_countires(apps, schema_editor):
    Country = apps.get_model("app_name", "Country")
    Country.objects.bulk_create([
        Country(name="India"),
        Country(name="USA"),
    ])


class Migration(migrations.Migration):

    dependencies = [
        ...
        dependencies goes here
    ]

    operations = [
        migrations.RunPython(create_countires),
    ]

依赖必须是最后一次迁移创建国家模式。 将此文件保存在任何应用程序的迁移目录中,并将其命名为迁移文件的格式。通过运行 migration 命令将两个国家/地区插入数据库。

【讨论】:

  • 我相信这正是我想要的。让我试试。。谢谢!
猜你喜欢
  • 2018-03-11
  • 2017-07-07
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
相关资源
最近更新 更多