Django ORM 查詢(xún)表中某列字段值的方法
1.什么是ORM
ORM 全拼Object-Relation Mapping. 中文意為 對(duì)象-關(guān)系映射. 在MVC/MVT設(shè)計(jì)模式中的Model模塊中都包括ORM2.ORM優(yōu)勢(shì)
(1)只需要面向?qū)ο缶幊? 不需要面向數(shù)據(jù)庫(kù)編寫(xiě)代碼.
對(duì)數(shù)據(jù)庫(kù)的操作都轉(zhuǎn)化成對(duì)類(lèi)屬性和方法的操作. 不用編寫(xiě)各種數(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ù)查詢(xún)的結(jié)果轉(zhuǎn)化成對(duì)象, 在映射過(guò)程中有性能損失.
下面看下Django ORM 查詢(xún)表中某列字段值,詳情如下:
場(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)容是元祖形式的查詢(xún)列的值。
但是我們想要的是這一列的值呀,這怎么是一個(gè)QuerySet,而且還包含了列名,或者是被包含在了元祖中?
查看高階用法,告訴你怎么獲取一個(gè)值的list,如:
[’測(cè)試feed’, ’今天’, ’第三個(gè)日程測(cè)試’, ’第四個(gè)日程測(cè)試’, ’第五個(gè)測(cè)試日程’]
到此這篇關(guān)于Django ORM 查詢(xún)表中某列字段值的文章就介紹到這了,更多相關(guān)django orm 字段值內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)2. 如何在jsp界面中插入圖片3. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析4. PHP循環(huán)與分支知識(shí)點(diǎn)梳理5. XML基本概念XPath、XSLT與XQuery函數(shù)介紹6. AspNetCore&MassTransit Courier實(shí)現(xiàn)分布式事務(wù)的詳細(xì)過(guò)程7. jsp實(shí)現(xiàn)登錄界面8. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案9. ASP.NET泛型三之使用協(xié)變和逆變實(shí)現(xiàn)類(lèi)型轉(zhuǎn)換10. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))
