单表查询还回数据有3种形式,返回形式不一样,模板调用方式不同

1)返回Queryset里面内容为对象:Business.objects.all() 这里内容显示是对象

2)返回Queryset里面内容为字典:Business.objects.all().values("id","caption")这里内容是字典

3)返回Queryset里面内容为元组:Business.objects.all().values_list("id","caption")这里显示是元组


   class Business(models.Model):
  caption=models.CharField(max_length=32)
  code=models.CharField(max_length=32,null=True,default="SA")  

  #1)
v1=Business.objects.all()
#Queryset
#[obj(id,caption,code),obj(id,caption,code),obj(id,caption,code)]

  #2)
v2=Business.objects.all().values("id","caption")
#Queryset,注意这里列表不是对象了,是字典
#[{"id":1,"caption":"运围部"},{"id":1,"caption":"运围部"}]
  #3) v3=Business.objects.all().values_list("id","caption")
#Queryset,注意这里列表不是对象了,返回的是元组
#[(1,“运围部”),(2,“运围部”)]
return render(request,"business.html",{"v1":v1,"v2":v2,"v3":v3})
-------------------------------------
 
 模板:
  1)
<ul>
{% for row in v1 %}
<li>{{ row.id }} {{ row.caption }} {{ row.code }}</li>
{% endfor %}
</ul>
  2)
<ul>
{% for row in v2 %}
<li>{{ row.id }} {{ row.caption }}</li>
{% endfor %}
</ul>
  3)
<ul>
{% for row in v3 %}
<li>{{ row.0 }} {{ row.1 }}</li>
{% endfor %}
</ul> values queryset是字典,values_list是queryset下是元组,其他返回都是queryset下是对象 models.Business.objects.get(id=1)直接返回是一个对象,不存在会报错 如何解决:
models.Business.objects.filter(id=1).first()会更好

12)django-ORM(单表返回数据3种方式)的更多相关文章

  1. day52:django:ORM单表/多表操作

    目录 1.ORM 2.ORM单表增删改查 13个必知必会的查询接口 filter基于双下划线的模糊查询 3.ORM多表增删改查 ORM 什么是ORM? ORM(object relational ma ...

  2. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  3. django ORM单表操作

    1.ORM介绍 ORM是“对象-关系-映射”的简称 映射关系: mysql---------Python 表名----------类名 字段----------属性 表记录--------实例化对象 ...

  4. Django ORM单表查询必会13条

    必知必会13条 操作下面的操作之前,我们实现创建好了数据表,这里主要演示下面的操作,不再细讲创建准备过程 <1> all(): 查询所有结果 <2> filter(**kwar ...

  5. python 之 Django框架(orm单表查询、orm多表查询、聚合查询、分组查询、F查询、 Q查询、事务、Django ORM执行原生SQL)

    12.329 orm单表查询 import os if __name__ == '__main__': # 指定当前py脚本需要加载的Django项目配置信息 os.environ.setdefaul ...

  6. django框架基础-ORM单表操作-长期维护

    ###############    单表操作-添加数据    ################ import os if __name__ == '__main__': os.environ.set ...

  7. Django框架05 /orm单表操作

    Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5 ...

  8. Django 模版语法 测试环境 ORM单表查询

    模版语法 传值 视图函数向前端html页面传值,基本上所有的数据类型都可以渲染在前端页面上. views.py from django.shortcuts import render, redirec ...

  9. 17-2 orm单表操作和多表操作

    参考:https://www.cnblogs.com/liwenzhou/p/8660826.html 一  ORM单表操作 1 增删改查 1. 查询 1. 查所有 models.Publisher. ...

随机推荐

  1. dp题2

    1.seq 给出数组 A,则 l 到 r 的一段序列可以选择以下两种得分方式之一进行得分:1.得到

  2. ubuntu终端命令启动matlab方法

    让所有用户都有权限使用matlab,在终端输入 sudo gedit /etc/profile 在后行写 export MATLABPATH=/home/ubuntu/MATLAB/R2016b:$M ...

  3. Flink 学习(一)

    摘自Flink官网https://flink.apache.org/ 最近看到公司有Flink平台,正好做过storm和spark streaming上的业务,借着这个机会把flink也学了.正好比较 ...

  4. luogu P4916 魔力环

    传送门 表示这种\(Burnside\)定理之类的东西一用就忘qwq 题目要求不同染色方案数,因为变换方式只有旋转,所以只有\(n\)个置换,然后可能会出现某种方案有循环节,这个循环节长度显然要是\( ...

  5. 2017CCPC秦皇岛 G题Numbers&&ZOJ3987【大数】

    题意: 给出一个数n,现在要将它分为m个数,这m个数相加起来必须等于n,并且要使得这m个数的或值最小. 思路: 从二进制的角度分析,如果这m个数中有一个数某一位为1,那么最后或起来这一位肯定是为1的, ...

  6. mysql 案例 ~ 主从复制延迟之并行复制

    一 概念说明   1 模型 并行复制是典型的生产者.消费者模式,Coordinator作为生产者,worker线程作为消费者.   2 Waiting for preceding transactio ...

  7. mysql案例~非常规操作汇总

    一 简介:此文汇总mysql不常见的数据库的操作二 mysql表修改最大自增ID 目的: 修复canal相关问题 语法: alter table a AUTO_INCREMENT=num; 执行速度: ...

  8. jQuery源码分析学习--资料收集--更新中

    1.逐行分析jQuery源码的奥秘 - 网易云课堂  http://study.163.com/course/courseMain.htm?courseId=465001#/courseDetail? ...

  9. HttpClient和HttpURLConnection的使用和区别

    https://www.cnblogs.com/liushuibufu/p/4140913.html 功能用法对比 从功能上对比,HttpURLConnection比HttpClient库要丰富很多, ...

  10. 方法join()使用详解

    在线程的常见方法一节中,已经接触过join()方法的使用. 在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程将早于子线程结束.这时,如果主线程想等子线程执行完成才结束,比 ...