假设我们需要在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 目录