4.Django大型电商项目之转化json数据保存到数据库

1.加载商品数据

这里,我们得到一份json格式的文件。

1.1 查看json格式文件

这里使用jsonviewer在线视图查看器
在这里插入图片描述

在这里插入图片描述

1.2 读取json文件内容,保存字段到数据库

loaddate.py

#coding=utf-8
from goodsapp.models import *
from django.db.transaction import atomic  #事务

@atomic
def test_model():
    with open('utils/jiukuaijiu.json') as fr:
        import json
        datas = json.loads(fr.read())
        #datas 数据格式  [{},{}....]
        for data in datas:
            cate = Category.objects.create(cname=data['category'])

            _goods = data['goods']

            for goods in _goods:
                good = Goods.objects.create(gname=goods['goodsname'], gdesc=goods['goods_desc'],
                                            price=goods['goods_price'], oldprice=goods['goods_oldprice'],
                                            category=cate)
                sizes = []
                for _size in goods['sizes']:
                    if Size.objects.filter(sname=_size[0]).count() == 1:
                        size = Size.objects.get(sname=_size[0])
                    else:
                        size = Size.objects.create(sname=_size[0])
                    sizes.append(size)

                colors = []
                for _color in goods['colors']:
                    color = Color.objects.create(colorname=_color[0], colorurl=_color[1])
                    colors.append(color)

                for _spec in goods['specs']:
                    try:
                        goodsdetails = GoodsDetailName.objects.get(gdname=_spec[0])
                    except GoodsDetailName.DoesNotExist:
                        goodsdetails = GoodsDetailName.objects.create(gdname=_spec[0])
                    for img in _spec[1]:
                        GoodsDetail.objects.create(goods=good,detailname=goodsdetails,gdurl=img)

                for c in colors:
                    for s in sizes:
                        Inventory.objects.create(count=100,goods=good, color=c, size=s)
def deleteall():
    Category.objects.filter().delete()
    Color.objects.filter().delete()
    Size.objects.filter().delete()


1.3 执行python文件

打开Django脚本控制台

python manage.py shell 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想成为数据分析师的开发工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值