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和php通信乱码问题解决方法
Apr 15 Python
python实现发送邮件功能
Jul 22 Python
django rest framework之请求与响应(详解)
Nov 06 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
用tensorflow搭建CNN的方法
Mar 05 Python
python的常用模块之collections模块详解
Dec 06 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
python进程间通信Queue工作过程详解
Nov 01 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
python实现图像高斯金字塔的示例代码
Dec 11 Python
Python 如何安装Selenium
May 06 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
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python异常处理操作实例详解
2018/05/10 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
荷兰家电销售网站:Welhof
2020/12/08 全球购物
学生请假条
2014/04/11 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
超市开店计划书
2014/09/15 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
详细总结Python常见的安全问题
2021/05/21 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android