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 29 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
python3中bytes和string之间的互相转换
Feb 09 Python
python爬虫之百度API调用方法
Jun 11 Python
Python for循环与range函数的使用详解
Mar 23 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
python实现大量图片重命名
Mar 23 Python
python文件和文件夹复制函数
Feb 07 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
Python中Cookies导出某站用户数据的方法
May 17 Python
python引入其他文件夹下的py文件具体方法
May 23 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/08/03 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
Ruffy javascript 学习笔记
2009/11/30 Javascript
Javascript面向对象编程
2012/03/18 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
jQuery事件详解
2017/02/23 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
python动态加载包的方法小结
2016/04/18 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
党章学习思想汇报
2014/01/14 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
文秘求职信范文
2014/04/10 职场文书
2015年党员承诺书
2015/01/21 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
怎样写家长意见
2015/06/04 职场文书