在python项目中,我们经常需要插入一些数据
但是我们又不想通过manage.py来插入数据
所以就可以使用离线脚本来完成
例如,我想在用户表中插入一条数据
那么写法如下
import os
import sys
import django
from web import models
#离线脚本 用sql初始化添加用户
base_dir =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoProject.settings")
django.setup()
models.UserInfo.objects.create(username='东东2',password='123456789',email='123456789@qq.com',mobile_phone='18718563812')
单机鼠标右键执行之后,竟然会报下列错误
查了很多资料资料之后,排查如下
1:确保引入了必须的包os,sys,django
2:确保django要模拟启动了django.setup()
3:确保脚本路径正确和设置了环境变量
4:最重要的一点,确保models放在sql执行语句之前
调整后的代码
import os
import sys
import django
#离线脚本 用sql初始化添加用户
base_dir =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoProject.settings")
django.setup()
from web import models
models.UserInfo.objects.create(username='东东2',password='123456789',email='123456789@qq.com',mobile_phone='18718563812')
无报错,正常执行