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进程类subprocess的一些操作方法例子
Nov 22 Python
简洁的十分钟Python入门教程
Apr 03 Python
Python正则表达式知识汇总
Sep 22 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
详解python实现线程安全的单例模式
Mar 05 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
python集成开发环境配置(pycharm)
Feb 14 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
PHP读取Excel类文件
2017/05/15 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
python使用递归的方式建立二叉树
2019/07/03 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
vscode调试django项目的方法
2020/08/06 Python
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
实习单位接收函模板
2014/01/10 职场文书
大学生学习计划书
2014/09/15 职场文书
2014年妇女工作总结
2014/12/06 职场文书
向女朋友道歉的话
2015/01/20 职场文书
八一建军节慰问信
2015/02/14 职场文书
企业财务管理制度范本
2015/08/04 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
mysql中关键词exists的用法实例详解
2022/06/10 MySQL