如何使用Django手动查询数据库?

时间:2018-01-13 03:03:55

标签: python django database sqlite

有时,我必须进行迁移,这会导致数据库丢失。

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

那么,在创建models.Model类时,有没有办法手动将数据插入到数据库中?

(我正在使用默认的Django的db:sqlite)

1 个答案:

答案 0 :(得分: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),
    ]

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