Django 为模型提供初始化数据
有些数据表需要硬编码数据,Django 既可以用 migration
实现,也可以用 fixtures
实现。感觉后者更方便些,只要准备一个符合格式的结构化文件即可 json
、yaml
或 xml
几种常用格式都可以。
使用 dumpdata
导出
如果数据库已经写好了数据,可以用 python manage.py dumpdata
命令将其导出。
手写 fixture 文件
在项目应用中新建 fixtures
目录,创建 fixture 文件内容如下:
以 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"
}
}
]
执行命令
$ python manage.py loaddata <fixturename>
注意:执行
loaddata
命令会复写已经存在数据!
fixtures 文件的查找路径
django 默认会在各个应用中的 fixtures
目录寻找 fixture 文件,可以设置 FIXTURE_DIRS
环境变量指定其他查找路径。