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 条件判断的缩写方法
Sep 06 Python
用Python登录Gmail并发送Gmail邮件的教程
Apr 17 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
解决pandas 作图无法显示中文的问题
May 24 Python
python向图片里添加文字
Nov 26 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
django实现模型字段动态choice的操作
Apr 01 Python
简单的命令查看安装的python版本号
Aug 28 Python
Python如何获取文件路径/目录
Sep 22 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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
URL Rewrite的设置方法
2007/01/02 PHP
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
PHP4中session登录页面的应用
2008/07/25 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
PHP网络操作函数汇总
2015/05/18 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
在Django框架中设置语言偏好的教程
2015/07/27 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
python3 re返回形式总结
2020/11/20 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
单位提档介绍信
2014/01/17 职场文书
银行简历自我评价
2014/02/11 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
Python一些基本的图像操作和处理总结
2021/06/23 Python