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实现外卖信息管理系统
Jan 11 Python
详解Python核心对象类型字符串
Feb 11 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
python3中zip()函数使用详解
Jun 29 Python
python中pika模块问题的深入探究
Oct 13 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
Python socket 套接字实现通信详解
Aug 27 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 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+XML 制作简单的留言本 图文教程
2009/11/02 PHP
php 中的4种标记风格介绍
2012/05/10 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
javascript实现留言板功能
2020/02/08 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
Python安装Bs4的多种方法
2020/11/28 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
好矿嫂事迹材料
2014/01/21 职场文书
装饰活动策划方案
2014/02/11 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
学生会主席竞聘书
2014/03/31 职场文书
驾驶员培训方案
2014/05/01 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
考研英语辞职信
2015/05/13 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
Redis性能监控的实现
2021/07/09 Redis