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中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
解析Python编程中的包结构
Oct 25 Python
python求最大连续子数组的和
Jul 07 Python
Python装饰器模式定义与用法分析
Aug 06 Python
一看就懂得Python的math模块
Oct 21 Python
Python发展史及网络爬虫
Jun 19 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
django queryset 去重 .distinct()说明
May 19 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 Python
Django一小时写出账号密码管理系统
Apr 29 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
JS的数组迭代方法
2015/02/05 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
浅谈Python基础—判断和循环
2019/03/22 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
用python制作个视频下载器
2021/02/01 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
母婴店促销方案
2014/03/05 职场文书
大学生求职计划书
2014/04/30 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
中标通知书范本
2015/04/17 职场文书