收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > python > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

Django視圖之ORM數據庫查詢操作API的實例

查詢表記錄

查詢相關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在不同層級目錄import模塊的方法使用python進行程序編寫時,經常會調用不同目錄下的模塊及函數。本篇博客針對常見的模塊調用講解導入模塊的方

徹底理解Python list切片原理
關于list的insert函數list#insert(ind,value)在ind元素前面插入value首先對ind進行預處理:如果ind0,則ind+=len(a),這樣一來ind就變成了正數下標預處理之后,當ind0

python音頻處理用到的操作的示例代碼
前言本文主要記錄python下音頻常用的操作,以.wav格式文件為例。其實網上有很多現成的音頻工具包,如果僅僅調用,工具包是更方便的。更多pyton下的

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
时时彩免费分析软件