Django ORM 查詢表中某列字段值的方法
1.什么是ORM
- ORM 全拼Object-Relation Mapping.
- 中文意為 對(duì)象-關(guān)系映射.
- 在MVC/MVT設(shè)計(jì)模式中的Model模塊中都包括ORM
2.ORM優(yōu)勢(shì)
(1)只需要面向?qū)ο缶幊? 不需要面向數(shù)據(jù)庫(kù)編寫代碼.
- 對(duì)數(shù)據(jù)庫(kù)的操作都轉(zhuǎn)化成對(duì)類屬性和方法的操作.
- 不用編寫各種數(shù)據(jù)庫(kù)的sql語(yǔ)句.
(2)實(shí)現(xiàn)了數(shù)據(jù)模型與數(shù)據(jù)庫(kù)的解耦, 屏蔽了不同數(shù)據(jù)庫(kù)操作上的差異.
- 不在關(guān)注用的是mysql、oracle...等.
- 通過(guò)簡(jiǎn)單的配置就可以輕松更換數(shù)據(jù)庫(kù), 而不需要修改代碼.
3.ORM劣勢(shì)
相比較直接使用SQL語(yǔ)句操作數(shù)據(jù)庫(kù),有性能損失.
根據(jù)對(duì)象的操作轉(zhuǎn)換成SQL語(yǔ)句,根據(jù)查詢的結(jié)果轉(zhuǎn)化成對(duì)象, 在映射過(guò)程中有性能損失.
下面看下Django ORM 查詢表中某列字段值,詳情如下:
場(chǎng)景:
有一個(gè)表中的某一列,你需要獲取到這一列的所有值,你怎么操作?
解決辦法:
有一個(gè)model為:Event
方式一:
獲取內(nèi)容: Event.objects.values('title') 輸出內(nèi)容: <QuerySet [{'title': '測(cè)試feed'}, {'title': '今天'}, {'title': '第三個(gè)日程測(cè)試'}, {'title': '第四個(gè)日程測(cè)試'}, {'title': '第五個(gè)測(cè)試日程'}]>
方式一獲取到的是一個(gè)QuerySet
,內(nèi)容是鍵值對(duì)構(gòu)成的,鍵為表的列名,值為對(duì)應(yīng)的每個(gè)值。
方式二:
獲取內(nèi)容: Event.objects.values_list('title') 輸出內(nèi)容: <QuerySet [('測(cè)試feed',), ('今天',), ('第三個(gè)日程測(cè)試',), ('第四個(gè)日程測(cè)試',), ('第五個(gè)測(cè)試日程',)]>
方式二獲取到的也是一個(gè)QuerySet
,但是內(nèi)容是元祖形式的查詢列的值。
但是我們想要的是這一列的值呀,這怎么是一個(gè)QuerySet
,而且還包含了列名,或者是被包含在了元祖中?
查看高階用法,告訴你怎么獲取一個(gè)值的list,如:
['測(cè)試feed', '今天', '第三個(gè)日程測(cè)試', '第四個(gè)日程測(cè)試', '第五個(gè)測(cè)試日程']
到此這篇關(guān)于Django ORM 查詢表中某列字段值的文章就介紹到這了,更多相關(guān)django orm 字段值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實(shí)現(xiàn)簡(jiǎn)單排行榜功能
排行榜是一種常見的功能,它可以用于展示和比較數(shù)據(jù)的排名或分?jǐn)?shù),本文將詳細(xì)介紹如何使用Python實(shí)現(xiàn)排行榜功能,感興趣的小伙伴可以了解一下2024-02-02Python實(shí)現(xiàn)生成指定大小文件的示例詳解
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)生成指定大小文件,例如txt/圖片/視頻/csv等,文中的示例代碼講解詳細(xì),需要的可以參考下2023-08-08Python獲取當(dāng)前腳本文件夾(Script)的絕對(duì)路徑方法代碼
在本篇文章中小編給各位整理了關(guān)于Python獲取當(dāng)前腳本文件夾(Script)的絕對(duì)路徑實(shí)例代碼內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-08-08Python根據(jù)當(dāng)前日期取去年同星期日期
最近做項(xiàng)目,遇到這樣的業(yè)務(wù)開發(fā)需求,需要對(duì)比當(dāng)前時(shí)間段和去年同星期的時(shí)間段的數(shù)據(jù),下面小編通過(guò)實(shí)例代碼給大家分享Python根據(jù)當(dāng)前日期取去年同星期日期,需要的朋友參考下2019-04-04python使用標(biāo)準(zhǔn)庫(kù)根據(jù)進(jìn)程名如何獲取進(jìn)程的pid詳解
Python有一套很有用的標(biāo)準(zhǔn)庫(kù)(standard library)。標(biāo)準(zhǔn)庫(kù)會(huì)隨著Python解釋器,一起安裝在你的電腦中的,所以下面這篇文章主要給大家介紹了關(guān)于python使用標(biāo)準(zhǔn)庫(kù)根據(jù)進(jìn)程名如何獲取進(jìn)程pid的相關(guān)資料,需要的朋友可以參考下。2017-10-10Python單元測(cè)試unittest模塊使用終極指南
本文將詳細(xì)介紹unittest模塊的各個(gè)方面,包括測(cè)試用例、斷言、測(cè)試套件、setUp和tearDown方法、跳過(guò)和期望異常、測(cè)試覆蓋率、持續(xù)集成等內(nèi)容,我們將提供豐富的示例代碼,以便讀者更好地理解如何使用unittest進(jìn)行單元測(cè)試2023-12-12Python實(shí)現(xiàn)批量識(shí)別銀行卡號(hào)碼以及自動(dòng)寫入Excel表格步驟詳解
這篇文章主要介紹了使用Python實(shí)現(xiàn)高效摸魚,批量識(shí)別銀行卡號(hào)碼并且自動(dòng)寫入Excel表格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01