这节做完的源代码
上一节做了很多模型,但是关键的几个模型数据还没有加载,所以单独拿出来一篇做这个讲解。
这里面主要是用随机数的方式进行的生成数据,城市、省份和姓名都是从网上复制下来的,有些是在天气预报网站,有的 是在取名字 网站,关键步骤是通过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加数据,只用一次
]