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 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python聊天室程序(基础版)
Apr 01 Python
python 解压pkl文件的方法
Oct 25 Python
简单了解python的break、continue、pass
Jul 08 Python
Python二维码生成识别实例详解
Jul 16 Python
Pytorch 中retain_graph的用法详解
Jan 07 Python
python3.8下载及安装步骤详解
Jan 15 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 Python
Python编写车票订购系统 Python实现快递收费系统
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
透析PHP的配置文件php.ini
2006/10/09 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
实例解析Array和String方法
2016/12/14 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
Python中字典的setdefault()方法教程
2017/02/07 Python
python getpass模块用法及实例详解
2019/10/07 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
python新手学习使用库
2020/06/11 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
爱护花草树木的标语
2014/06/11 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
汉字听写大会观后感
2015/06/12 职场文书
建筑工程催款函
2015/06/24 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang