django框架學習 十三 資料庫查詢表結構

2022-06-22 04:42:09 字數 2817 閱讀 7108

django框架支援多種方法查詢資料庫,不同的方法返回的結果也不太一樣,本篇詳細介紹一下關於查詢常用的13個方法。

返回物件是物件列表的:all(),filter(),exclude(),order_by(),reverse(),values_list(),distinct()

返回結果是物件的:get(),frist(),last()

返回結果是布林值:exists()

返回結果是數字:count()

在上user表中新增測試資料

django裡面查詢資料庫不需要寫sql語句 表的類名稱.objects.all()返回的是整個表的內容,這裡返回的是可迭代物件queryset,並沒有直接返回全部資料,如果想取出資料,需要用到for迴圈讀取。

urls.py設定select_all 訪問路徑

開啟瀏覽器:ip+8000/select_all

進行訪問,返回如下結果

查詢的時候新增條件,類似sql裡的where語句

select * from ke24_user  where user_name ='liushui' ;

filter 查詢的結果是可迭代物件,如果結果只有乙個,可以通過下表取值,找不到值可以給個預設值null。

testdb.py檔案建立select_filter方法

urls.py建立訪問路徑

終端命令列啟動django服務

all()和filter()返回的都是可迭代的queryset序列,平常我們習慣獲取字典的物件,可以用values()方法獲取user.objects.all().values("user_name"

,"mail")類似於sql語句

在urls.py配置訪問位址 url(r'^select_values$', testdb.select_values),訪問後得到的結果

查詢到的資訊:

exclude()它包含了與所給篩選條件不匹配的物件,呼叫者:objects管理器 返回queryset

查詢使用者名稱不是liushui的資料庫:

res=user.objects.exclude(user_name='liushui') 

order_by()是對查詢結果排序,由queryset物件呼叫,返回值是queryset

查詢所有的資料按照mail欄位排序,預設公升序

res=user.objects.all().order_by('mail')

查詢所有的資料按照mail欄位排序,前面加個-代表降序

res=user.objects.all().order_by('-mail')

reverse()對結果進行反向排序,由queryset物件呼叫,返回值是queryset

查詢所有的資料按照mail欄位排序,預設公升序,查詢結果反向排序,和-mail實現效果一樣

res=user.objects.all().order_by('mail').revrse()

values_list()由queryset物件呼叫,返回值是queryset的乙個元組序列

res=user.objects.all().values_list("user_name","mail")

distinct()從返回的結果提出重覆記錄,由queryset物件呼叫,返回值是queryset

和sql語句中的distinct去重一樣

res=user.objects.all().values("user_name","mail").distinct()

django中的get是從資料庫獲取唯一匹配的結果。查詢結果有且只有乙個才執行,查詢結果多個或者乙個都會報錯。

查詢到的結果

返回第一條記錄和返回最後一條記錄

查詢第乙個結果:[email protected]

查詢最後結果:897564

exists() 如果queryset包含資料,就返回true,否則返回false 由queryset物件呼叫 返回值布林值

exists: 由queryset物件呼叫 返回值布林值

is_exist=user.objects.all().exists()

count : 數數 由queryset物件呼叫 返回int

ret=user.objects.all().count()

Django框架學習02 建立資料庫

資料庫配置 在專案的setting.py檔案中的databases,這裡系統已經配置好了,鏈結乙個叫做db.sqlite3的資料庫,django也支援mysql,orcal等其他資料庫,我這裡用的系統自帶的,如圖 繼上篇,建立了blog應用,可以看到裡面有很多檔案。admin.py 它是我們的後台管...

Django框架(二) 資料庫操作

get查詢 get查詢的是單一結果,如果不存在會丟擲模型類名.does.not.exist異常。bookinfo.objects.get id 1 all查詢 all查詢的是多個結果。返回型別是乙個查詢集,可迭代。bookinfo.objects.all count查詢 count查詢的是結果的數量...

Django框架連線MySQL資料庫

pycharm也是可以運算元據庫的 類似於資料庫得視覺化軟體 n icat等 pycharm可以充當很多款資料庫軟體的客戶端 所在位置 三個位置查詢資料庫相關 右側上方database 左下方database 配置裡面的plugins外掛程式搜尋安裝 如果都沒有,解除安裝pycharm重新裝 鏈結m...