2021-07-30-DJ-005 Django模型的数据批量加载

本文档介绍了如何使用随机数生成模拟数据,包括城市、省份、姓名等,以及如何在Django项目中创建和关联模型(如OrderGoodsModel、StoreModel等),通过视图函数实现数据的批量添加,并通过路由映射到相应的操作。数据生成是为演示数据库操作和前后端交互而设计的,适合学习者理解Django开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


这节做完的源代码
上一节做了很多模型,但是关键的几个模型数据还没有加载,所以单独拿出来一篇做这个讲解。
这里面主要是用随机数的方式进行的生成数据,城市、省份和姓名都是从网上复制下来的,有些是在天气预报网站,有的 是在取名字 网站,关键步骤是通过random.choice()获取。
这里的OrderGoodsModel较上一节多加了一个store字段,代表购买商品的店铺。
商品图片是从京东上面直接保存下来的,可以通过浏览器的保存网页功能保存,我是谷歌浏览器,ctrl+s之后选择保存格式最后面的全部网页,保存后的文件夹里就会有图片,剔除一些广告条 之后就可以作为我们 的商品图片来源,数据库里存的就是个地址,所以我们也可以造地址存进去。图片文件的重命名参照 Python 中对文件夹内文件重命名
各个路由都是相应模型增加数据的链接,喜欢一步到位的也可以顺着顺序不停的重定向到底。
因为是随机生成的,不能保证随机数据会有重富违反数据库 规则 ,所以所有插入都是以try的方式填入的。
学习的时候 分别对照着路由、模型和视图看。项目的源码每次都打包好在 前面,需要的可以自己免费下载(站内资源)。
在这里插入图片描述

一、模型

import uuid

from django.db import models

# Create your models here.
#通用参数的模块


class CommonModel(models.Model):
    id=models.UUIDField(primary_key=True,verbose_name='ID')
    create_time=models.DateTimeField(auto_now_add=True,verbose_name='创建时间')
    update_time=models.DateTimeField(auto_now=True,verbose_name='修改时间')
    #重写保存方法以获取 uuid类型的保存
    def  save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        if self.id is None:
            self.id=uuid.uuid4().hex
        super().save()

    class Meta:
        abstract=True#抽象模型



class LabelModel(CommonModel):
    name=models.CharField(max_length=40,verbose_name='标签',unique=True)
    order_num=models.IntegerField(default=100,verbose_name='排序值')

    def __str__(self):
        return self.name
    class  Meta:
        db_table='t_label'
        verbose_name=verbose_name_plural = '标签'
        ordering=['-order_num']#降序排列



class GoodsModel(CommonModel):
    name=models.CharField(verbose_name='商品名称',max_length=60,)
    price = models.DecimalField(max_digits=10,decimal_places=2,verbose_name='单价')
    source=models.CharField(verbose_name='产地',max_length=50,null=True,blank=True)
    #一级分类
    choices=((0,'电视'),(1,'空调'),(2,'洗衣机'),(3,'冰箱'),(4,'厨卫大电'),(5,'厨房小电'),(6,'生活电器'),(7,'个护健康'),(8,'视听影音'))
    classification=models.IntegerField(verbose_name='类别',choices=choices)
    img1=models.ImageField(upload_to='shangpinapp/goods/',verbose_name='商品图片',storage=None,null=True,blank=True)
    #与LabelModel的多对多关联
    labels=models.ManyToManyField(LabelModel,db_table='t_gooods_label',related_name='goods',verbose_name='标签')

    def __str__(self):
        return self.name

    class Meta:
        db_table='t_goods'
        verbose_name=verbose_name_plural = '商品'
        unique_together=(('name','source'),)


#店铺模型
class StoreModel(CommonModel):
    city=models.CharField(verbose_name='城市',max_length=50)
    name=models.CharField(verbose_name='名称',max_length=50)
    phone=models.CharField(verbose_name='联系电话',max_length=11)
    address=models.TextField(verbose_name='地址')

    def __str__(self):
        return self.city+":"+self.name
    class Meta:
        db_table='t_store'
        verbose_name=verbose_name_plural='商店'
#库存模型
class StoreGoodsModel(CommonModel):
    class Meta:
        db_table='t_store_goods'
        verbose_name=verbose_name_plural='库存'
        unique_together=(('store','goods'),)
    store=models.ForeignKey(StoreModel,verbose_name='商店',related_name='kucun',on_delete=models.CASCADE)
    goods=models.ForeignKey(GoodsModel,verbose_name='商品',related_name='kucun',on_delete=models.CASCADE)
    counts=models.IntegerField(verbose_name='数量',default=0)

    def __str__(self):
        return self.store.city+"-"+self.store.name+":"+self.goods.name

from mainapp.models import UserModel

class OrderModel(CommonModel):
    user=models.ForeignKey(UserModel,verbose_name='购买用户',on_delete=models.CASCADE,related_name='order')
    choices=((0,'待支付'),(1,'已支付'),(2,'待收货'),(3,'已收货 '),(4,'已完成'),(5,'已取消'))
    status = models.IntegerField(choices=choices,verbose_name='订单状态',default=0)
    receiver=models.CharField(verbose_name='收货人',max_length=30)
    receiver_phone=models.CharField(verbose_name='收货电话',max_length=11)
    receiver_address=models.TextField(verbose_name='收货地址')
    def __str__(self):
        return self.user.name+'->'+self.receiver
    class Meta:
        db_table='t_order'
        verbose_name=verbose_name_plural='订单'

class OrderGoodsModel(CommonModel):
    order=models.ForeignKey(OrderModel,on_delete=models.CASCADE,verbose_name='订单',related_name='ordergoods')
    goods=models.ForeignKey(GoodsModel,on_delete=models.CASCADE,verbose_name='商品',related_name='ordergoods')
    store=models.ForeignKey(StoreModel,on_delete=models.CASCADE,verbose_name='购买店铺',related_name='ordergoods')
    counts=models.IntegerField(default=0,verbose_name='数量')

    @property
    def price_h(self):
        return str(int(self.counts) * float(self.goods.price))

    # def __str__(self):
    #     return self.id
    class  Meta:
        db_table='t_order_goods'
        verbose_name=verbose_name_plural='订单详情'

二、视图函数

import string

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
from mainapp.models import UserModel
from .models import LabelModel, StoreModel, GoodsModel, StoreGoodsModel, OrderGoodsModel, OrderModel

import random
def add_label(request):
    list_data=['全面屏电视','教育电视','OLED电视','智慧屏','4K超清电视','55英寸','65英寸','电视配件',
    '空调挂机','空调柜机','中央空调','变频空调','一级能效','移动空调',
     '滚筒洗衣机','洗烘一体机','波轮洗衣机','迷你洗衣机','烘干机','洗衣机配件',
     '多门','对开门','三门','双门','冷柜/冰吧','酒柜','冰箱配件',     '油烟机', '燃气灶',
    '烟灶套装','集成灶',     '消毒柜',     '洗碗机',     '电热水器',     '燃气热水器',     '空气能热水器',     '太阳能热水器',
     '嵌入式厨电',     '烟机灶具配件',     '破壁机',     '咖啡机',     '榨汁机/原汁机',     '电炖锅',     '电烤箱',     '料理机',
     '电水壶/热水瓶',     '面包机',     '电饼铛',     '电火锅',     '空气炸锅',     '养生壶',     '电磁炉',     '电饭煲',     '电压力锅',
     '微波炉',     '电陶炉',     '面条机',     '电烧烤炉',     '电热饭盒',     '煮蛋器',     '豆浆机',     '电风扇',     '冷风扇',     '空气净化器',
     '净水器',     '饮水机',     '加湿器',     '吸尘器',     '扫地机器人',     '蒸汽拖把',     '除螨仪',     '挂烫机',     '熨斗',     '干衣机',
     '除湿机',     '电话机',     '取暖器',     '毛球修剪器',     '生活电器配件',     '剃须刀',     '电动牙刷',     '电吹风',
     '卷 / 直发器',     '理发器',     '美容仪',     '剃 / 脱毛器',     '洁面仪',     '按摩器',     '按摩椅',     '足浴盆',
     '足疗机',     '健康秤',     '家庭影院',     'KTV音响',     '迷你音响',     'DVD',     '功放',     '回音壁',     '麦克风']
    for  i  in list_data:
        label=LabelModel()
        label.name=i
        label.order_num=random.randint(3,20)*10
        label.save()
    return HttpResponse('<h3>加载数据 完成</h3>',status=200)




def add_store(request):
    citylist=['高雄',
              '花莲',
              '嘉义',
              '苗栗',
              '南投',
              '屏东',
              '台北',
              '台东',
              '台南',
              '台中',
              '桃园',
              '新竹',
              '宜兰',
              '云林',
              '彰化',
              '白沙',
              '保亭',
              '昌江',
              '澄迈',
              '定安',
              '东方',
              '海口',
              '海棠']
    quarterlist=['壹',
             '贰',
             '叁',
             '肆',
             '伍',
             '陆',
             '柒',
             '捌',
             '玖',
             '零',
             '拾']
    streetlist=['一',
            '二',
            '三',
            '四',
            '五',
            '六',
            '七',
            '八',
            '九',
            '十']
    doorlist = string.digits

    #做150家店铺
    for i in range(150):
        qb=[]
        for  j in range(2):
            qb.append(random.choice(quarterlist))
        quarter=''.join(qb)+'区'
        sb=[]
        for j in range(3):
            sb.append(random.choice(streetlist))
        street=''.join(sb)+'路'
        db=[]
        for j in range(4):
            db.append(random.choice(doorlist))
        door=''.join(db)+'号'

        num=[]
        for j in range(2):
            num.append(random.choice(doorlist))
        numl=''.join(num)+'号店'
        city=random.choice(citylist)
        name=city+quarter+numl
        address=city+quarter+street+door
        pb = ['1']
        for j in range(10):
            pb.append(random.choice(doorlist))
        phone = ''.join(pb)
        try:
            store=StoreModel()
            store.name=name
            store.city=city
            store.phone=phone
            store.address=address
            store.save()
        except:
             pass

    return HttpResponse('<h3>加载数据成功</h3>')

def add_goods(request):
    '''
    name=models.CharField(verbose_name='商品名称',max_length=60,)
    price = models.DecimalField(max_digits=10,decimal_places=2,verbose_name='单价')
    source=models.CharField(verbose_name='产地',max_length=50,null=True,blank=True)
    #一级分类
    choices=((0,'电视'),(1,'空调'),(2,'洗衣机'),(3,'冰箱'),(4,'厨卫大电'),(5,'厨房小电'),(6,'生活电器'),(7,'个护健康'),(8,'视听影音'))
    classification=models.IntegerField(verbose_name='类别',choices=choices)
    img1=models.ImageField(upload_to='shangpinapp/goods/',verbose_name='商品图片',storage=None,null=True,blank=True)
    :param request:
    :return:
    '''
    datas='安徽	北京	重庆	福建	甘肃   广东	广西	贵州	海南	河北 黑龙江	河南	香港	湖北	湖南 \
    内蒙古	江苏	江西	吉林	辽宁  澳门	宁夏	青海	陕西	山东  上海	山西	四川	天津	西藏  \
    新疆	云南	浙江	台湾'
    sourcelist=datas.split()

    for  i in range(30):
        price=random.randint(1000,5000)+random.uniform(0,1)
        price=round(price,2)
        classification = 0
        source=random.choice(sourcelist)
        name=f'电机机{i}号'
        img1=f'shangpinapp/goods/0/{i}.jpg'
        try:
            goods=GoodsModel()
            goods.price=price
            goods.img1=img1
            goods.source=source
            goods.classification=classification
            goods.name=name
            goods.save()
        except:
            pass

    for  i in range(70):
        price=random.randint(5000,15000)+random.uniform(0,1)
        price=round(price,2)
        classification = 1
        source=random.choice(sourcelist)
        name=f'空调{i}号'
        img1=f'shangpinapp/goods/{classification}/{i}.jpg'
        try:
            goods=GoodsModel()
            goods.price=price
            goods.img1=img1
            goods.source=source
            goods.classification=classification
            goods.name=name
            goods.save()
        except:
            pass

    for  i in range(86):
        price=random.randint(3000,10000)+random.uniform(0,1)
        price=round(price,2)
        classification = 3
        source=random.choice(sourcelist)
        name=f'冰箱{i}号'
        img1=f'shangpinapp/goods/3/{i}.jpg'
        try:
            goods=GoodsModel()
            goods.price=price
            goods.img1=img1
            goods.source=source
            goods.classification=classification
            goods.name=name
            goods.save()
        except:
            pass

    for  i in range(34):
            price=random.randint(3000,10000)+random.uniform(0,1)
            price=round(price,2)
            classification = 4
            source=random.choice(sourcelist)
            name=f'热水器{i}号'
            img1=f'shangpinapp/goods/4/{i}.jpg'
            try:
                goods=GoodsModel()
                goods.price=price
                goods.img1=img1
                goods.source=source
                goods.classification=classification
                goods.name=name
                goods.save()
            except:
                pass
    return HttpResponse('<h3>加载数据成功</h3>')

def add_kucun(request):
    storeidlist=[]
    goodsidlist=[]
    for i in StoreModel.objects.all():
        storeidlist.append(i.id)
    for i in GoodsModel.objects.all():
        goodsidlist.append(i.id)
    for i in range(3000):
        counts=random.randint(50,150)
        storeid=random.choice(storeidlist)
        goodsid=random.choice(goodsidlist)
        print(counts,storeid,goodsid)
        try:
            kucun=StoreGoodsModel()
            kucun.store=StoreModel.objects.get(pk=storeid)
            kucun.goods=GoodsModel.objects.get(pk=goodsid)
            kucun.counts=counts
            kucun.save()
        except:
            pass

    return HttpResponse('<h3>加载数据成功</h3>')


def  add_order(request):
    '''
    user=models.ForeignKey(UserModel,verbose_name='购买用户',on_delete=models.CASCADE,related_name='order')
    choices=((0,'待支付'),(1,'已支付'),(2,'待收货'),(3,'已收货 '),(5,'已完成'),(6,'已取消'))
    status = models.IntegerField(choices=choices,verbose_name='订单状态',default=0)
    receiver=models.CharField(verbose_name='收货人',max_length=30)
    receiver_phone=models.CharField(verbose_name='收货电话',max_length=11)
    receiver_address=models.TextField(verbose_name='收货地址')
    :param request:
    :return:
    '''
    userlist=[]
    for i in UserModel.objects.all():
        userlist.append(i.id)

    lastnamelist='赵 钱 孙 李 周 吴 郑 王 冯 陈 褚 卫   蒋 沈 韩 杨 朱 秦 尤 许 何 吕 施 张   \
    孔 曹 严 华 金 魏 陶 姜 戚 谢 邹 喻   柏 水 窦 章 云 苏 潘 葛 奚 范 彭 郎   \
    鲁 韦 昌 马 苗 凤 花 方 俞 任 袁 柳   酆 鲍 史 唐 费 廉 岑 薛 雷 贺 倪 汤  \
     滕 殷 罗 毕 郝 邬 安 常 乐 于 时 傅   皮 卞 齐 康 伍 余 元 卜 顾 孟 平 黄  \
     和 穆 萧 尹 姚 邵 湛 汪 祁 毛 禹 狄   米 贝 明 臧 计 伏 成 戴 谈 宋 茅 庞  \
     熊 纪 舒 屈 项 祝 董 梁 杜 阮 蓝 闵   席 季 麻 强 贾 路 娄 危 江 童 颜 郭  \
     梅 盛 林 刁 锺 徐 邱 骆 高 夏 蔡 田   樊 胡 凌 霍 虞 万 支 柯 昝 管 卢 莫  \
     经 房 裘 缪 干 解 应 宗 丁 宣 贲 邓   郁 单 杭 洪 包 诸 左 石 崔 吉 钮 龚  \
     程 嵇 邢 滑 裴 陆 荣 翁 荀 羊 於 惠   甄 麴 家 封 芮 羿 储 靳 汲 邴 糜 松  \
     井 段 富 巫 乌 焦 巴 弓 牧 隗 山 谷   车 侯 宓 蓬 全 郗 班 仰 秋 仲 伊 宫   \
    宁 仇 栾 暴 甘 钭 历 戎 祖 武 符 刘   景 詹 束 龙 叶 幸 司 韶 郜 黎 蓟 溥   \
    印 宿 白 怀 蒲 邰 从 鄂 索 咸 籍 赖   卓 蔺 屠 蒙 池 乔 阳 郁 胥 能 苍 双   \
    闻 莘 党 翟 谭 贡 劳 逄 姬 申 扶 堵   冉 宰 郦 雍 却 璩 桑 桂 濮 牛 寿 通   \
    边 扈 燕 冀 僪 浦 尚 农 温 别 庄 晏   柴 瞿 阎 充 慕 连 茹 习 宦 艾 鱼 容   \
    向 古 易 慎 戈 廖 庾 终 暨 居 衡 步   都 耿 满 弘 匡 国 文 寇 广 禄 阙 东   \
    欧 殳 沃 利 蔚 越 夔 隆 师 巩 厍 聂   晁 勾 敖 融 冷 訾 辛 阚 那 简 饶 空   \
    曾 毋 沙 乜 养 鞠 须 丰 巢 关 蒯 相   查 后 荆 红 游 竺 权 逮 盍 益 桓 公   \
    万俟 司马 上官 欧阳 夏侯 诸葛 闻人 东方 赫连 皇甫 尉迟 公羊    \
    澹台 公冶宗政 濮阳 淳于 单于 太叔 申屠 公孙 仲孙 轩辕 令狐  \
     钟离 宇文 长孙 慕容 司徒 司空 召 有 舜 叶赫那拉 丛 岳 黄辰  \
    寸 贰 皇 侨 彤 竭 端 赫 实 甫 集 象   翠 狂 辟 典 良 函 芒 苦 其 京 中 夕\
    之 章佳 那拉 冠 宾 香 果 依尔根觉罗 依尔觉罗 萨嘛喇 赫舍里 额尔德特    \
             萨克达 钮祜禄 他塔喇 喜塔腊 讷殷富察 叶赫那兰 库雅喇 瓜尔佳  \
             舒穆禄 爱新觉罗 索绰络 纳喇 乌雅 范姜 碧鲁 张廖 张 简图 门 太史 公叔 乌孙 完颜 马佳 佟佳  \
     富察 费莫 蹇 称 诺 来 多 繁 戊 朴 回 毓 鉏(chi)  \
              税 荤 靖 绪 愈 硕 牢 买 但 巧 枚 撒   泰 秘 亥 绍 以 壬 森 斋 释 奕 姒 朋   \
             求 羽 用 占 真 穰 翦 闾 漆 贵 代 贯   旁 崇 栋 告 休 褒 谏 锐 皋 闳 在 歧  \
              禾 示 是 委 钊 频 嬴 呼 大 威 昂 律   冒 保 系 抄 定 化 莱 校 么 抗 祢 綦  \
              悟 宏 功 庚 务 敏 捷 拱 兆 丑 丙 畅 苟 随 类 卯'.split()

    firstnamelist='澄邈、德泽、海超、海阳、海荣、海逸、海昌、瀚钰、瀚文、涵亮、涵煦、明宇、涵衍、浩皛、浩波、浩博、浩初、\
    浩宕、浩歌、浩广、浩邈、浩气、浩思、浩言、鸿宝、鸿波、鸿博、鸿才、鸿畅、鸿畴、鸿达、鸿德、鸿飞、鸿风、鸿福、鸿光、鸿晖、\
    鸿朗、鸿文、鸿轩、鸿煊、鸿骞、鸿远、鸿云、鸿哲、鸿祯、鸿志、鸿卓、嘉澍、光济、澎湃、彭泽、鹏池、鹏海、浦和、浦泽、瑞渊、\
    越泽、博耘、德运、辰宇、辰皓、辰钊、辰铭、辰锟、辰阳、辰韦、辰良、辰沛、晨轩、晨涛、晨濡、晨潍、鸿振、吉星、铭晨、起运、\
    运凡、运凯、运鹏、运浩、运诚、运良、运鸿、运锋、运盛、运升、运杰、运珧、运骏、运凯、运乾、维运、运晟、运莱、运华、耘豪、\
    星爵、星腾、星睿、星泽、星鹏、星然、震轩、震博、康震、震博、振强、振博、振华、振锐、振凯、振海、振国、振平、昂然、昂雄、\
    昂杰、昂熙、昌勋、昌盛、昌淼、昌茂、昌黎、昌燎、昌翰、晨朗、德明、德昌、德曜、范明、飞昂、高旻、晗日、昊然、昊天、昊苍、\
    昊英、昊宇、昊嘉、昊明、昊伟、昊硕、昊磊、昊东、鸿晖、鸿朗、华晖、金鹏、晋鹏、敬曦、景明、景天、景浩、俊晖、君昊、昆琦、\
    昆鹏、昆纬、昆宇、昆锐、昆卉、昆峰、昆颉、昆谊、昆皓、昆鹏、昆明、昆杰、昆雄、昆纶、鹏涛、鹏煊、曦晨、曦之、新曦、旭彬、\
    旭尧、旭鹏、旭东、旭炎、炫明、宣朗、学智、轩昂、彦昌、曜坤、曜栋、曜文、曜曦、曜灿、曜瑞、智伟、智杰、智刚、智阳、昌勋、\
    昌盛、昌茂、昌黎、昌燎、昌翰、晨朗、昂然、昂雄、昂杰、昂熙、范明、飞昂、高朗、高旻、德明、德昌、德曜、智伟、智杰、智刚、\
    智阳、瀚彭、旭炎、宣朗、学智、昊然、昊天、昊苍、昊英、昊宇、昊嘉、昊明、昊伟、鸿朗、华晖、金鹏、晋鹏、敬曦、景明、景天、\
    景浩、景行、景中、景逸、景彰、昆鹏、昆明、昆杰、昆雄、昆纶、鹏涛、鹏煊、景平、俊晖、君昊、昆琦、昆鹏、昆纬、昆宇、昆锐、\
    昆卉、昆峰、昆颉、昆谊、轩昂、彦昌、曜坤、曜文、曜曦、曜灿、曜瑞、曦晨、曦之、新曦、鑫鹏、旭彬、旭尧、旭鹏、旭东、浩轩、\
    浩瀚、浩慨、浩阔、鸿熙、鸿羲、鸿禧、鸿信、泽洋、泽雨、哲瀚、胤运、佑运、允晨、运恒、运发、云天、耘志、耘涛、振荣、振翱、\
    中震、子辰、晗昱、瀚玥、瀚昂、瀚彭、景行、景中、景逸、景彰、绍晖、文景、曦哲、永昌、子昂、智宇、智晖、晗日、晗昱、瀚昂、\
    昊硕、昊磊、昊东、鸿晖、绍晖、文昂、文景、曦哲、永昌、子昂、智宇、智晖、浩然、鸿运、辰龙、运珹、振宇、高朗、景平、鑫鹏、\
    昌淼、炫明、昆皓、曜栋、文昂、治汇、恨桃、依秋、依波、香巧、紫萱、涵易、忆之、幻巧、美倩、安寒、白亦、惜玉、碧春、怜雪、\
    听南、念蕾、紫夏、凌旋、芷梦、凌寒、梦竹、千凡、丹蓉、慧贞、思菱、平卉、笑柳、雪卉、南蓉、谷梦、巧兰、绿蝶、飞荷、佳蕊、\
    芷荷、怀瑶、慕易、若芹、紫安、曼冬、寻巧、雅昕、尔槐、以旋、初夏、依丝、怜南、傲菡、谷蕊、笑槐、飞兰、笑卉、迎荷、佳音、\
    梦君、妙绿、觅雪、寒安、沛凝、白容、乐蓉、映安、依云、映冬、凡雁、梦秋、梦凡、秋巧、若云、元容、怀蕾、灵寒、天薇、翠安、\
    乐琴、宛南、怀蕊、白风、访波、亦凝、易绿、夜南、曼凡、亦巧、青易、冰真、白萱、友安、海之、小蕊、又琴、天风、若松、盼菡、\
    秋荷、香彤、语梦、惜蕊、迎彤、沛白、雁彬、易蓉、雪晴、诗珊、春冬、晴钰、冰绿、半梅、笑容、沛凝、映秋、盼烟、晓凡、涵雁、\
    问凝、冬萱、晓山、雁蓉、梦蕊、山菡、南莲、飞双、凝丝、思萱、怀梦、雨梅、冷霜、向松、迎丝、迎梅、雅彤、香薇、以山、碧萱、\
    寒云、向南、书雁、怀薇、思菱、忆文、翠巧、书文、若山、向秋、凡白、绮烟、从蕾、天曼、又亦、从语、绮彤、之玉、凡梅、依琴、\
    沛槐、又槐、元绿、安珊、夏之、易槐、宛亦、白翠、丹云、问寒、易文、傲易、青旋、思真、雨珍、幻丝、代梅、盼曼、妙之、半双、\
    若翠、初兰、惜萍、初之、宛丝、寄南、小萍、静珊、千风、天蓉、雅青、寄文、涵菱、香波、青亦、元菱、翠彤、春海、惜珊、向薇、\
    冬灵、惜芹、凌青、谷芹、雁桃、映雁、书兰、盼香、梅致、寄风、芳荷、绮晴、映之、醉波、幻莲、晓昕、傲柔、寄容、以珊、紫雪、\
    芷容、书琴、美伊、涵阳、怀寒、易云、代秋、惜梦、宇涵、谷槐、怀莲、英莲、芷卉、向彤、新巧、语海、灵珊、凝丹、小蕾、迎夏、\
    慕卉、飞珍、冰夏、亦竹、飞莲、秋月、元蝶、春蕾、怀绿、尔容、小玉、幼南、凡梦、碧菡、初晴、宛秋、傲旋、新之、凡儿、夏真、\
    静枫、芝萱、恨蕊、乐双、念薇、靖雁、菊颂、丹蝶、元瑶、冰蝶、念波、迎翠、海瑶、乐萱、凌兰、曼岚、若枫、傲薇、雅芝、乐蕊、\
    秋灵、凤娇、觅云、依伊、恨山、从寒、忆香、香菱、静曼、青寒、笑天、涵蕾、元柏、代萱、紫真、千青、雪珍、寄琴、绿蕊、荷柳、\
    诗翠、念瑶、兰楠、曼彤、怀曼、香巧、采蓝、芷天、尔曼、巧蕊'.split('、')
    citylist = ['高雄',
                '花莲',
                '嘉义',
                '苗栗',
                '南投',
                '屏东',
                '台北',
                '台东',
                '台南',
                '台中',
                '桃园',
                '新竹',
                '宜兰',
                '云林',
                '彰化',
                '白沙',
                '保亭',
                '昌江',
                '澄迈',
                '定安',
                '东方',
                '海口',
                '海棠']
    quarterlist = ['壹',
                   '贰',
                   '叁',
                   '肆',
                   '伍',
                   '陆',
                   '柒',
                   '捌',
                   '玖',
                   '零',
                   '拾']
    streetlist = ['一',
                  '二',
                  '三',
                  '四',
                  '五',
                  '六',
                  '七',
                  '八',
                  '九',
                  '十']
    doorlist = string.digits
    for i in range(2000):
        userid=random.choice(userlist)
        status=random.randint(0,5)
        receiver=random.choice(lastnamelist)+random.choice(firstnamelist)
        pb = ['1']
        for j in range(10):
            pb.append(random.choice(doorlist))
        receiver_phone = ''.join(pb)
        city=random.choice(citylist)
        qb = []
        for j in range(2):
            qb.append(random.choice(quarterlist))
        quarter = ''.join(qb) + '区'
        sb = []
        for j in range(3):
            sb.append(random.choice(streetlist))
        street = ''.join(sb) + '路'
        db = []
        for j in range(4):
            db.append(random.choice(doorlist))
        door = ''.join(db) + '号'
        address=city+quarter+street+door
        try:
            og=OrderModel()
            og.user=UserModel.objects.get(pk=userid)
            og.status=status
            og.receiver=receiver
            og.receiver_phone=receiver_phone
            og.receiver_address=address
            og.save()
        except:
            pass

    return HttpResponse('<h3>加载数据成功</h3>')


def add_ordergoods(request):
    '''
    order=models.ForeignKey(OrderModel,on_delete=models.CASCADE,verbose_name='订单',related_name='ordergoods')
    goods=models.ForeignKey(GoodsModel,on_delete=models.CASCADE,verbose_name='商品',related_name='ordergoods')
    store=models.ForeignKey(StoreModel,on_delete=models.CASCADE,verbose_name='购买店铺',related_name='ordergoods')
    counts=
    :param request:
    :return:
    '''
    orderlist=[]
    for i in  OrderModel.objects.all():
        orderlist.append(i.id)
    goodslist=[]
    for i in  GoodsModel.objects.all():
        goodslist.append(i.id)
    storelist = []
    for i in StoreModel.objects.all():
        storelist.append(i.id)
    for i  in range(5000):
        try:
            sg=OrderGoodsModel()
            sg.order=OrderModel.objects.get(pk=random.choice(orderlist))
            sg.goods=GoodsModel.objects.get(pk=random.choice(goodslist))
            sg.store=StoreModel.objects.get(pk=random.choice(storelist))
            sg.counts=random.randint(1,10)
            sg.save()
        except:
            pass
    return HttpResponse('<h3>加载数据成功</h3>')

三、路由

from django.http import HttpResponse
from django.urls import path

from .views import add_label, add_store, add_goods, add_kucun, add_order, add_ordergoods

urlpatterns=[
    path('addlabel',add_label),#004给LabelModel加数据,只用一次
    path('addstore',add_store),#005给StoreModel加数据,只用一次
    path('addgoods',add_goods),#005给GoodsModel加数据,只用一次
    path('addkucun',add_kucun),#005给StoreGoodsModel加数据,只用一次
    path('addorder',add_order),#005给OrderModel加数据,只用一次
    path('addordergoods',add_ordergoods),#005给OrderGoodsModel加数据,只用一次
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amoor123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值