Django在通过模板语言渲染直接将Python类型数据传给转换为JQuery类型数据中

1、前提:

  Python数据类型和JQuery数据类型相互转换时都需要通过序列化,以下我们将通过JSON来完成序列化,

  1:在Python环境中Python类型与Json数据类型互相转换:

    Python ----> Json:(注意import json)json.dumps(data),data为Python数据类型

    Json  ----> Python:json.loads(data),data为Json字符串

  2:在JQuery环境中jQuery数据类型与Json数据类型互相转换:

    Jquery ----> Json:JSON.stringify(data),data为Jquery数据类型

    Json ----> Jquery:JSON.parse(data),data为Json字符串

2、Django中渲染数据

COMMODITY_TYPE = {
            "女装 / 内衣": ["当季流行", "精选上装", "浪漫裙装", "特色女装"],
            "男装 / 户外运动": ["潮流男装", "男士外套", "男士内搭", "特色男装"],
            "女鞋 / 男鞋 / 箱包": ["推荐女鞋", "潮流女鞋", "潮流男鞋", "潮流女包", "功能箱包", "精品男鞋"],
            "家用电器": ["电视", "空调", "厨卫大电", "厨卫小电", "生活电器", "个护健康"],
            "手机数码 / 电脑办公": ["热门手机", "智能数码", "电脑整机", "手机特惠"],
            "美妆 / 个人护理": ["面部护肤", "香水彩妆", "洗发护发", "口腔护理"],
            "图书 / 文娱 / 教育 / 电子书": ["教材教辅", "人文社科", "教育培训", "经管励志"],
            "家居 / 家具 / 家装 / 厨具": ["精品沙发", "卧室家具", "厨房用具", "全屋定制"],
            "零食 / 茶酒 / 进口食品": ["进口食品", "休闲零食", "高档白酒", "精装红酒", "精品茶叶"],
            "汽车 / 配件 / 用品": ["坐垫脚垫", "美容清洗", "汽车装饰", "车载电器", "机油轮胎"],
            "家纺 / 家饰 / 鲜花": ["当季热卖", "床上用品", "家居饰品", "居家布艺", "鲜花绿植"],
        }
def commodityManage(request):
    import json
    return render(request, "shop/commodityManage.html", {"commodityClass":json.dumps(COMMODITY_TYPE)})

 3、模板语言中指定渲染数据位置

  说明:转换为jQuery数据类型是,指定位置应该为js脚本中,并定义变量来接收存放数据,在如下代码中,{{ commodityClass|safe }}为待渲染的Json字符串,在HTML代码中需要使用' '单引号包围起来,这样JSON.parse()才能起作用,同时,需要使用过滤器safe指定代码安全,保证Json字符串数据代码在传输前不会被转义。

<script>
        var commodityClass = JSON.parse('{{ commodityClass|safe }}');
</script>

猜你喜欢

转载自www.cnblogs.com/yuncaige/p/12514280.html