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的ORM框架SQLObject入门实例
Apr 28 Python
Python3基础之基本数据类型概述
Aug 13 Python
利用Python抓取行政区划码的方法
Nov 28 Python
用python实现的线程池实例代码
Jan 06 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
将python文件打包成EXE应用程序的方法
May 22 Python
使用pandas的box_plot去除异常值
Dec 10 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 Python
Python制作一个随机抽奖小工具的实现
Jul 07 Python
python自动化测试之Selenium详解
Mar 13 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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
html静态页面调用php文件的方法
2014/11/13 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
Python与Redis的连接教程
2015/04/22 Python
python Django模板的使用方法
2016/01/14 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
聊聊Python中的pypy
2018/01/12 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python生成带有表格的图片实例
2019/02/03 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
对python 调用类属性的方法详解
2019/07/02 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
Python设计密码强度校验程序
2020/07/30 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
Exception类的常用方法
2012/06/16 面试题
三好学生自我鉴定
2013/12/17 职场文书
迎接领导欢迎词
2014/01/11 职场文书
小学生自我评价范文
2014/01/25 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
考核评语大全
2014/04/29 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
个人授权委托书范本
2014/09/14 职场文书
志愿者事迹材料
2014/12/26 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
Python学习之包与模块详解
2022/03/19 Python