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 k-近邻算法实例分享
Jun 11 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
如何在Django项目中引入静态文件
Jul 26 Python
python 实现字符串下标的输出功能
Feb 13 Python
Python递归函数特点及原理解析
Mar 04 Python
Python openpyxl 插入折线图实例
Apr 17 Python
Python 爬虫的原理
Jul 30 Python
Python Sqlalchemy如何实现select for update
Oct 12 Python
Flask处理Web表单的实现方法
Jan 31 Python
详解Python中__new__方法的作用
Mar 31 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 str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
Sanic框架请求与响应实例分析
2018/07/16 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
python机器学习实现决策树
2019/11/11 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
华为python面试题
2016/05/03 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
美术教学感言
2014/02/22 职场文书
喝酒检查书范文
2014/02/23 职场文书
周一问候语大全
2015/11/10 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
总结Python使用过程中的bug
2021/06/18 Python