当新开始一个项目时,数据库是空的,但我们又需要一些数据来测试效果,这时就可以用到离线脚本来达到初始化的目的,例如我的model中有topic,
我需要向topic中添加一些数据要怎么做呢?
一般情况下,我们有两种选择:
1. django自带的admin
2. 直接通过工具向数据库中写入数据
其中第一种比较慢,而第二种,如果涉及到复杂的表关系,很容易出错。
这里介绍第三种方式:离线脚本,简单说就是一个py文件:
我在项目根目录下创建一个scripts文件夹,创建一个init_topic文件:
import os
import sys
import django
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)
# 将配置文件的路径写到 DJANGO_SETTINGS_MODULE 环境变量中
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demos.settings")
django.setup()
from api import models
models.Topic.objects.create(title="春运")
models.Topic.objects.create(title="火车票")
显然,如果一个一个这样手写添加,还不如方法一或者方法二,但我们可以通过for循环添加。从而达到批量添加数据的目我。