Django视图之ORM数据库查询操作API的实例
发布时间:2020-05-24 15:30:20 所属栏目:Python 来源:互联网
导读:查询表记录查询相关API操作:models.表名.objects.方法()BRall():查询所有结果
|
查询表记录 查询相关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,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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
