Django ORM 查詢表中某列字段值的方法
1.什么是ORM
- ORM 全拼Object-Relation Mapping.
- 中文意為 對象-關(guān)系映射.
- 在MVC/MVT設計模式中的Model模塊中都包括ORM
2.ORM優(yōu)勢
(1)只需要面向?qū)ο缶幊? 不需要面向數(shù)據(jù)庫編寫代碼.
- 對數(shù)據(jù)庫的操作都轉(zhuǎn)化成對類屬性和方法的操作.
- 不用編寫各種數(shù)據(jù)庫的sql語句.
(2)實現(xiàn)了數(shù)據(jù)模型與數(shù)據(jù)庫的解耦, 屏蔽了不同數(shù)據(jù)庫操作上的差異.
- 不在關(guān)注用的是mysql、oracle...等.
- 通過簡單的配置就可以輕松更換數(shù)據(jù)庫, 而不需要修改代碼.
3.ORM劣勢
相比較直接使用SQL語句操作數(shù)據(jù)庫,有性能損失.
根據(jù)對象的操作轉(zhuǎn)換成SQL語句,根據(jù)查詢的結(jié)果轉(zhuǎn)化成對象, 在映射過程中有性能損失.
下面看下Django ORM 查詢表中某列字段值,詳情如下:
場景:
有一個表中的某一列,你需要獲取到這一列的所有值,你怎么操作?
解決辦法:
有一個model為:Event
方式一:
獲取內(nèi)容: Event.objects.values('title') 輸出內(nèi)容: <QuerySet [{'title': '測試feed'}, {'title': '今天'}, {'title': '第三個日程測試'}, {'title': '第四個日程測試'}, {'title': '第五個測試日程'}]>
方式一獲取到的是一個QuerySet
,內(nèi)容是鍵值對構(gòu)成的,鍵為表的列名,值為對應的每個值。
方式二:
獲取內(nèi)容: Event.objects.values_list('title') 輸出內(nèi)容: <QuerySet [('測試feed',), ('今天',), ('第三個日程測試',), ('第四個日程測試',), ('第五個測試日程',)]>
方式二獲取到的也是一個QuerySet
,但是內(nèi)容是元祖形式的查詢列的值。
但是我們想要的是這一列的值呀,這怎么是一個QuerySet
,而且還包含了列名,或者是被包含在了元祖中?
查看高階用法,告訴你怎么獲取一個值的list,如:
['測試feed', '今天', '第三個日程測試', '第四個日程測試', '第五個測試日程']
到此這篇關(guān)于Django ORM 查詢表中某列字段值的文章就介紹到這了,更多相關(guān)django orm 字段值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python獲取當前腳本文件夾(Script)的絕對路徑方法代碼
在本篇文章中小編給各位整理了關(guān)于Python獲取當前腳本文件夾(Script)的絕對路徑實例代碼內(nèi)容,有需要的朋友們學習下。2019-08-08python使用標準庫根據(jù)進程名如何獲取進程的pid詳解
Python有一套很有用的標準庫(standard library)。標準庫會隨著Python解釋器,一起安裝在你的電腦中的,所以下面這篇文章主要給大家介紹了關(guān)于python使用標準庫根據(jù)進程名如何獲取進程pid的相關(guān)資料,需要的朋友可以參考下。2017-10-10Python實現(xiàn)批量識別銀行卡號碼以及自動寫入Excel表格步驟詳解
這篇文章主要介紹了使用Python實現(xiàn)高效摸魚,批量識別銀行卡號碼并且自動寫入Excel表格,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01