Python的Django框架中的數(shù)據(jù)過(guò)濾功能
我們很少會(huì)一次性從數(shù)據(jù)庫(kù)中取出所有的數(shù)據(jù);通常都只針對(duì)一部分?jǐn)?shù)據(jù)進(jìn)行操作。 在Django API中,我們可以使用`` filter()`` 方法對(duì)數(shù)據(jù)進(jìn)行過(guò)濾:
>>> Publisher.objects.filter(name='Apress') [<Publisher: Apress>]
filter() 根據(jù)關(guān)鍵字參數(shù)來(lái)轉(zhuǎn)換成 WHERE SQL語(yǔ)句。 前面這個(gè)例子 相當(dāng)于這樣:
SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE name = 'Apress';
你可以傳遞多個(gè)參數(shù)到 filter() 來(lái)縮小選取范圍:
>>> Publisher.objects.filter(country="U.S.A.", state_province="CA") [<Publisher: Apress>]
多個(gè)參數(shù)會(huì)被轉(zhuǎn)換成 AND SQL從句, 因此上面的代碼可以轉(zhuǎn)化成這樣:
SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE country = 'U.S.A.' AND state_province = 'CA';
注意,SQL缺省的 = 操作符是精確匹配的, 其他類型的查找也可以使用:
>>> Publisher.objects.filter(name__contains="press") [<Publisher: Apress>]
在 name 和 contains 之間有雙下劃線。和Python一樣,Django也使用雙下劃線來(lái)表明會(huì)進(jìn)行一些魔術(shù)般的操作。這里,contains部分會(huì)被Django翻譯成LIKE語(yǔ)句:
SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE name LIKE '%press%';
其他的一些查找類型有:icontains(大小寫(xiě)無(wú)關(guān)的LIKE),startswith和endswith, 還有range(SQLBETWEEN查詢)。
相關(guān)文章
Python自動(dòng)化測(cè)試工具Splinter簡(jiǎn)介和使用實(shí)例
這篇文章主要介紹了Python自動(dòng)化測(cè)試工具Splinter簡(jiǎn)介和使用實(shí)例,Splinter可以非常棒的模擬瀏覽器的行為,Splinter提供了豐富的API,可以獲取頁(yè)面的信息判斷當(dāng)前的行為所產(chǎn)生的結(jié)果2014-05-05
Pyhton模塊和包相關(guān)知識(shí)總結(jié)
文中詳細(xì)整理了關(guān)于Python模塊和包的相關(guān)知識(shí)點(diǎn),剛?cè)腴T(mén)Python的小伙伴們可以學(xué)習(xí)一下,有助于加深Python基礎(chǔ)的理解.而且有詳細(xì)說(shuō)明及代碼示例,需要的朋友可以參考下2021-05-05
NumPy?與?Python?內(nèi)置列表計(jì)算標(biāo)準(zhǔn)差區(qū)別詳析
這篇文章主要介紹了NumPy與Python內(nèi)置列表計(jì)算標(biāo)準(zhǔn)差區(qū)別詳析,NumPy,是Numerical?Python的簡(jiǎn)稱,用于高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-07-07
python實(shí)現(xiàn)mysql的單引號(hào)字符串過(guò)濾方法
這篇文章主要介紹了python實(shí)現(xiàn)mysql的單引號(hào)字符串過(guò)濾方法,以一個(gè)較為詳細(xì)的實(shí)例形式分析了Python針對(duì)MySQL的操作及字符串過(guò)濾的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Python?sklearn?中的?make_blobs()?函數(shù)示例詳解
make_blobs()?是?sklearn.datasets中的一個(gè)函數(shù),這篇文章主要介紹了Python?sklearn?中的?make_blobs()?函數(shù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
python使用pipeline批量讀寫(xiě)redis的方法
今天小編就為大家分享一篇python使用pipeline批量讀寫(xiě)redis的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素示例
這篇文章主要介紹了Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素,結(jié)合具體實(shí)例形式對(duì)比分析了Python針對(duì)列表元素的遍歷、復(fù)制、刪除等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
Python實(shí)現(xiàn)自定義函數(shù)的5種常見(jiàn)形式分析
這篇文章主要介紹了Python實(shí)現(xiàn)自定義函數(shù)的5種常見(jiàn)形式,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python自定義函數(shù)相關(guān)的參數(shù)、默認(rèn)值、隱函數(shù)等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06

