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中使用itertools模块中的组合函数的教程
Apr 13 Python
python通过socket查询whois的方法
Jul 18 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
详解django自定义中间件处理
Nov 21 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
Python如何调用外部系统命令
Aug 07 Python
python实现文件的分割与合并
Aug 29 Python
python元组和字典的内建函数实例详解
Oct 22 Python
使用python创建生成动态链接库dll的方法
May 09 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
python如何快速拼接字符串
Oct 28 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实现的css文件背景图片下载器代码
2014/11/11 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
Python测试人员需要掌握的知识
2018/02/08 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
详解Python3 基本数据类型
2019/04/19 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python面向对象 反射原理解析
2019/08/12 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
家长会演讲稿
2014/04/26 职场文书
竞选班委演讲稿
2014/04/28 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
社区端午节活动总结
2015/02/11 职场文书
商场广播稿范文
2015/08/19 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
《称赞》教学反思
2016/02/17 职场文书
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android