如何用外部.json文件初始化Django的SQLite数据库?
用外部JSON文件初始化Django数据库的基础方法
Django admin默认没有提供直接导入JSON的功能,最基础的方式是用Django自带的loaddata命令行工具,步骤如下:
1. 准备符合格式的JSON文件
你的JSON文件必须遵循Django的固定格式,每个数据条目需要包含三个核心字段:
model:对应你的Django应用和模型,格式为app_label.ModelName(比如blog.Post)pk:数据的主键值fields:模型字段和对应的值
示例格式:
[ { "model": "blog.Post", "pk": 1, "fields": { "title": "我的第一篇博客", "content": "这是测试初始化内容", "pub_date": "2024-05-20T12:00:00Z" } }, { "model": "blog.Post", "pk": 2, "fields": { "title": "第二篇博客", "content": "另一篇测试内容", "pub_date": "2024-05-21T10:30:00Z" } } ]
2. 放置JSON文件(可选但推荐)
在你的Django项目或目标应用下创建fixtures目录(如果没有的话),把JSON文件放进去。Django会自动扫描这个目录下的文件,执行命令时不用写全路径。
如果不想用fixtures目录,也可以直接使用文件的绝对/相对路径。
3. 确保数据库表已创建
先运行迁移命令,保证模型对应的数据库表已经存在:
python manage.py migrate
4. 执行导入命令
在项目根目录下运行:
# 如果文件在fixtures目录下 python manage.py loaddata 你的文件名.json # 如果用绝对路径 python manage.py loaddata /Users/xxx/Desktop/你的文件名.json
执行成功后,数据就会被导入到对应的数据库表中。
注意事项
- 确保JSON里的
model名称和你项目中的应用、模型完全匹配(大小写敏感) - 日期时间字段必须是ISO格式(如
YYYY-MM-DDTHH:MM:SSZ) - 如果数据库中已存在相同主键的数据,导入会报错,需要先删除重复数据或者修改JSON中的主键值
内容的提问来源于stack exchange,提问作者Mustafizur
相关产品推荐
相关产品推荐

