使用django自带的orm模型进行批量数据生成

项目需求:运行简单的python脚本插入批量数据

使用django自带的orm模型进行操作。

首先是在models中定义表的时候定义一个类方法:

使用django自带的orm模型进行批量数据生成_第1张图片

模型定义完创建方法后就可以创建脚本了,

随便创建一个py文件就可以。

使用django自带的orm模型进行批量数据生成_第2张图片

请注意这个顺序:一定要按照上面的顺序引入 ,否则会出问题

这样配置之后已经能保证环境跑起来没问题了,根据需求自定义要实现的功能就可以。

简单用个例子来说一下我遇到的问题:

我插入的表是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.')

最主要的就是上面的引入,其他的照常操作就可以。

你可能感兴趣的:(使用django自带的orm模型进行批量数据生成)