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获取beautifulphoto随机某图片代码实例
Dec 18 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
Feb 13 Python
Python 装饰器使用详解
Jul 29 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
python实现截取屏幕保存文件,删除N天前截图的例子
Aug 27 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
Python OpenCV 图像平移的实现示例
Jun 04 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之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
Yii rules常用规则示例
2016/03/15 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
Javascript变量函数浅析
2011/09/02 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
JS的数组迭代方法
2015/02/05 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
python概率计算器实例分析
2015/03/25 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
python读取文本中的坐标方法
2018/10/14 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
python中rb含义理解
2020/06/18 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
亿企通软件测试面试题
2012/04/10 面试题
大学毕业生推荐信
2014/07/09 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
交通安全主题班会
2015/08/12 职场文书