为模型提供初始数据 — Django 文档
来自菜鸟教程
Django/docs/2.2.x/howto/initial-data
为模型提供初始化的数据
当您第一次设置应用程序时,使用硬编码数据预先填充数据库有时很有用。 您可以通过迁移或固定装置提供初始数据。
通过固定内容提供数据
您也可以使用夹具提供数据,但是,除非您使用 TransactionTestCase.fixtures,该数据不会自动加载。
夹具是 Django 知道如何导入数据库的数据集合。 如果您已经有了一些数据,那么创建夹具的最直接方法是使用 :djadmin:`manage.py 转储数据 ` 命令。 或者,您可以手动编写设备; 夹具可以写成 JSON、XML 或 YAML(安装了 PyYAML)文档。 序列化文档 有更多关于这些支持的 序列化格式 的详细信息。
不过,举个例子,下面是一个简单的 Person
模型的夹具在 JSON 中的样子:
[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
}
}
]
这是与 YAML 相同的装置:
- model: myapp.person
pk: 1
fields:
first_name: John
last_name: Lennon
- model: myapp.person
pk: 2
fields:
first_name: Paul
last_name: McCartney
您将这些数据存储在应用程序内的 fixtures
目录中。
加载数据很简单:只需调用 :djadmin:`manage.py 加载数据 `<fixturename>
, 在哪里<fixturename>
是您创建的夹具文件的名称。 每次运行 :djadmin:`loaddata` 时,数据将从夹具中读取并重新加载到数据库中。 请注意,这意味着如果您更改由夹具创建的行之一,然后再次运行 :djadmin:`loaddata`,您将清除您所做的任何更改。
Django 从哪里寻找固定内容文件
默认情况下,Django 在每个应用程序内的 fixtures
目录中查找装置。 您可以将 :setting:`FIXTURE_DIRS` 设置设置为 Django 应该查看的其他目录列表。
跑步时 :djadmin:`manage.py 加载数据 ` ,您还可以指定一个固定文件的路径,它会覆盖搜索通常的目录。