项目需求:运行简单的python脚本插入批量数据
使用django自带的orm模型进行操作。
首先是在models中定义表的时候定义一个类方法:
模型定义完创建方法后就可以创建脚本了,
随便创建一个py文件就可以。
请注意这个顺序:一定要按照上面的顺序引入 ,否则会出问题
这样配置之后已经能保证环境跑起来没问题了,根据需求自定义要实现的功能就可以。
简单用个例子来说一下我遇到的问题:
我插入的表是django自带的用户表,并且是已经自己扩展过的,所以在文件头上要加上一些东西(我上一片博客写了关于扩展auth_user表所遇到的问题)
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ecds.settings")
import random
import django
django.setup()
from multiprocessing import Process
from EcdsApp.models import *
# 这里是针对扩展过auth_user表,详情可参照我的另外一篇博客
from django.contrib.auth import get_user_model
from django.contrib.auth.hashers import make_password
User = get_user_model()
def create_user():
"""
主要的数据插入步骤,对应类方法定义的参数进行传值
"""
# 若干字段的获取
# 在这里将用户密码进行加密,否则使用自带的验证方法不能正常的验证
passwd_hash = make_password(passwd)
# 调用类方法进行数据创建保存
user = User.create(passwd_hash, last_login, 0, username, date_joined, passwd)
user.save()
# 提高效率创建了5个进程,好像是快了点
if __name__ == "__main__":
print('Parent process %s.' % os.getpid())
processes = list()
for i in range(5):
p = Process(target=create_user)
print('Process will start.')
p.start()
processes.append(p)
for p in processes:
p.join()
print('Process end.')
最主要的就是上面的引入,其他的照常操作就可以。