django实现将后台model对象转换成json对象并传递给前端jquery


Posted in Python onMarch 16, 2020

1、django的model转json对象。

1.1、单个modle转换,返回json对象:

sqlOrder = get_object_or_404(SqlOrder,id=request.GET.get("id"))
objJson = serialize('json',[sqlOrder])[1:-1]
{"model": "sqlapply.sqlorder", "pk": 2, "fields": {"work_id": "{now}{_ran}", "username": "admin", "status": 3, "type": 0, "backup": 0}}

注意:objJson["fields"]["username"] 才能获得想要属性值。objJson["pk"]获得主键值。

1.2、querySet转换:

json_data = serializers.serialize("json", MyModel.objects.all())

2、转换后的json对象作为子元素传递到前端:

2.1、将json对象转换成字符串。(单引号包含属性)。

objStr = json.loads(objJson)

2.2、组拼json对象。

response_data = {'statcode': '1', 'data':objStr}

2.3、返回前进行对象转换:

return HttpResponse(json.dumps(response_data))

2.4、前端接受并获取:

$.ajax({
      url: "{% url 'sqlapply:auditSqlOrder' %}",
      type:"GET",
      data:{"id":id,"args":"getObjById"},
      success:function(result){
        res = jQuery.parseJSON(result);  #关键代码!!!!解析一个 JSON 字符串'{"name":"John"}'为Json对象。
        if (res["statcode"] == "1") {
          objStr = res["data"];
          console.log(objStr["fields"]["username"]);#获取方式1
      alert(objStr.fields.username);#获取方式2
        }
      },
      error:function(){
        alert("访问异常,请截图联系管理员 \t\n ErrorNO:auditSqlOrder.getObjById")
      }
    });

补充知识:django 将model转换成想要的json格式

model:

class SysRole(models.Model):
  id = models.CharField(db_column='ID', primary_key=True, max_length=50) # Field name made lowercase.
  rolename = models.CharField(db_column='RoleName', max_length=50) # Field name made lowercase.
  description = models.CharField(db_column='Description', max_length=200, blank=True, null=True) # Field name made lowercase.
  querycode = models.CharField(db_column='QueryCode', max_length=200, blank=True, null=True) # Field name made lowercase.
  isdisabled = models.CharField(db_column='IsDisabled') # Field name made lowercase. This field type is a guess.
 
  def __unicode__(self):
    return self.rolename
  # 将属性和属性值转换成dict 列表生成式
  def toDict(self):
    return dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]])#type(self._meta.fields).__name__
  class Meta:
    managed = False
    db_table = 'sys_role'
# 遍历查询集 调用model属性转换成dict
def queryset_to_json(queryset):
    obj_arr=[]
    for o in queryset:
        obj_arr.append(o.toDict())
    return obj_arr
# 获取角色分页列表
  def get_roles_page(self,_page,_limit):
    _roles = SysRole.objects.all()[(int(_page)-1)*int(_limit):int(_page)*int(_limit)]
    _count = SysRole.objects.all().count()
    _dict_roles = tools.queryset_to_json(_roles)
    _data_page_json = {}
    _data_page_json['Rows']=_dict_roles
    _data_page_json['Total']=_count
    return json.dumps(_data_page_json,ensure_ascii=False)

在model上加入toDict方法 然后执行查询 得到queryset 遍历它 将queryset里的每个model执行他的todict方法 转换成字典格式 之后统一调用json.dumps方法转json

以上这篇django实现将后台model对象转换成json对象并传递给前端jquery就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入讲解Python中面向对象编程的相关知识
May 25 Python
python多线程方式执行多个bat代码
Jun 07 Python
20招让你的Python飞起来!
Sep 27 Python
Django开发中复选框用法示例
Mar 20 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
python图像和办公文档处理总结
May 28 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 Python
Python读写操作csv和excle文件代码实例
Mar 16 #Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 #Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 #Python
python高阶函数map()和reduce()实例解析
Mar 16 #Python
Django models filter筛选条件详解
Mar 16 #Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 #Python
django 前端页面如何实现显示前N条数据
Mar 16 #Python
You might like
PHP 文件类型判断代码
2009/03/13 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
PHP实现懒加载的方法
2015/03/07 PHP
js活用事件触发对象动作
2008/08/10 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
python生成随机密码或随机字符串的方法
2015/07/03 Python
Django框架中的对象列表视图使用示例
2015/07/21 Python
python检索特定内容的文本文件实例
2018/06/05 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
航空大学应届生求职信
2013/11/10 职场文书
档案工作汇报材料
2014/08/21 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
2014年团总支工作总结
2014/11/21 职场文书
爱晚亭导游词
2015/02/09 职场文书
运动会主持人开幕词
2016/03/04 职场文书