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...