假设我们需要在django初始化的时候在数据库提前放谢数据用来测试。
比如:数据库里有一张叫 [site_option] 里面有3个字段 [id] [option_name] [option_value],
我们现在需要在启动django之前向这张表添加1条数据,之后我们需要在Views里获取博客的名称:
index_site_option |
id |
option_name |
option_value |
1 |
blog_name |
这里是F_picachoの领域(๑•̀ㅂ•́)و✧ |
我们先在app目录下创建一个名叫fixtures的文件夹,现在的目录是这样的:
.
├── index (app的名字)
│ ├── admin.py
│ ├── apps.py
│ ├── fixtures (我们需要创建的文件夹)
│ │ └── initial_data.json(初始化json数据)
│ ├── __init__.py
│ ├── migrations
其中initial_data.json的名字可以随意起 比如简化成 init.json
现在假设你有一个叫site_option的模型
class site_option(models.Model):
option_name=models.CharField(max_length=50)
option_value=models.CharField(max_length=100)
那么init.json可以这样写:
[
{
"model": "index.site_option", //index是app的名称,site_option是模型的名称
"pk": 1, //primary key 的简写
"fields": { //里面是你需要添加的数据
"option_name":"blog_name",
"option_value": "这里是F_picachoの领域(๑•̀ㅂ•́)و✧"
}
}
//如果想再加1条。
{
"model": "index.site_option",
"pk": 2,
"fields": {
"option_name": "blog_url",
"option_value": "https://seq.ink"
}
}
]
现在我们初始化数据:
python manage.py loaddata init.json
PS:这里我们不需要写init.json的具体目录,但需要确保它位于 app 目录下的 fixtures 目录