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

xiaoxiao2025-07-28  37

项目需求:运行简单的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.')

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

转载请注明原文地址: https://www.6miu.com/read-5033884.html

最新回复(0)