Django视图之ORM数据库查询操作API的实例


Posted in Python onOctober 27, 2017

查询表记录

查询相关API

操作:models.表名.objects.方法()

<BR>all():     查询所有结果 
 
filter(**kwargs):  它包含了与所给筛选条件相匹配的对象 
 
get(**kwargs):   返回与所给筛选条件相匹配的对象,返回结果有且只有一个, 
      如果符合筛选条件的对象超过一个或者没有都会抛出错误。 
 
exclude(**kwargs):  它包含了与所给筛选条件不匹配的对象 
 
values(*field):
 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列 






 model的实例化对象,而是一个可迭代的字典序列 
 
values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 
 
order_by(*field):  对查询结果排序 
 
reverse():    对查询结果反向排序 
 
distinct():   从返回结果中剔除重复纪录 
 
count():  
 返回数据库中匹配查询(QuerySet)的对象数量。 
 
first():    返回第一条记录 
 
last():    返回最后一条记录 
 
exists(): 
  如果QuerySet包含数据,就返回True,否则返回False

注意:一定区分object与querySet的区别 !!!

object,可以调用内部方法

而queryset则是一个集合

双下划线之单表查询

models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 
 
models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据 
models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in
 
models.Tb1.objects.filter(name__contains="ven") 
models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感 
 
models.Tb1.objects.filter(id__range=[1, 2])  # 范围bettwen and 
 
startswith,istartswith, endswith, iendswith 

示例:

def query(request): 
 #查询方法API: 
 
 #1 all方法:models.表名.objects.all() 
 book_all=models.Book.objects.all() #结果是querySet集合 
 # print(book_all) 
 
 #2 filter: models.表名.objects.filter() 
 ret=models.Book.objects.filter(title='PHP') #结果是querySet集合 
 ret2=models.Book.objects.filter(nid=1) #结果是querySet集合 
 ret3=models.Book.objects.filter(author='Alex',price=35) #结果是querySet集合,且的关系,两个条件都要满足 
 # print(ret) 
 # 3 get:models.表名.objects.get() 
 ret4=models.Book.objects.get(nid=3) #model对象,如果取不到值则会报错 
 # print(ret4,ret4.price) 
 
 #4 exclude:排除条件,取非 
 ret5 = models.Book.objects.exclude(author='oldboy') 
 
 #5 values方法 
 # ret6=models.Book.objects.filter(author='Alex').values('title','price') 
 # print('ret6',ret6) 
 # #6 values_list方法 
 # ret7 = models.Book.objects.filter(author='Alex').values_list('title', 'price') 
 # print('ret7', ret7) 
 # ret8 = models.Book.objects.filter(author='Alex').values('author').distinct() 
 # print('ret8',ret8) 
 
 #双线划线 
 ret9 = models.Book.objects.filter(price__gt=30) 
 ret10 = models.Book.objects.filter(title__startswith='P') 
 ret11 = models.Book.objects.filter(id_lt=4,id_gt=2) #id 大于2小于4 
 
 
 print('ret10',ret10) 
 
 
 return HttpResponse("OK")

以上这篇Django视图之ORM数据库查询操作API的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python算法之栈(stack)的实现
Aug 18 Python
Python入门篇之编程习惯与特点
Oct 17 Python
Python运算符重载用法实例分析
Jun 01 Python
深入浅析python定时杀进程
Jun 06 Python
django 实现电子支付功能的示例代码
Jul 25 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
用python写一个带有gui界面的密码生成器
Nov 06 Python
Django使用echarts进行可视化展示的实践
Jun 10 Python
浅谈python函数之作用域(python3.5)
Oct 27 #Python
python+pyqt实现右下角弹出框
Oct 26 #Python
python中模块的__all__属性详解
Oct 26 #Python
Python内建函数之raw_input()与input()代码解析
Oct 26 #Python
python分布式环境下的限流器的示例
Oct 26 #Python
Python Nose框架编写测试用例方法
Oct 26 #Python
Python面向对象编程基础解析(二)
Oct 26 #Python
You might like
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
PHP 转义使用详解
2013/07/15 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
js中less常用的方法小结
2017/08/09 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
[01:46]新英雄登场
2019/09/10 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
tornado框架blog模块分析与使用
2013/11/21 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
pycharm配置git(图文教程)
2019/08/16 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
高中生学习生活的自我评价
2013/11/27 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技