Python的Django框架中的數(shù)據(jù)過濾功能
我們很少會一次性從數(shù)據(jù)庫中取出所有的數(shù)據(jù);通常都只針對一部分?jǐn)?shù)據(jù)進(jìn)行操作。 在Django API中,我們可以使用`` filter()`` 方法對數(shù)據(jù)進(jìn)行過濾:
>>> Publisher.objects.filter(name='Apress') [<Publisher: Apress>]
filter() 根據(jù)關(guān)鍵字參數(shù)來轉(zhuǎn)換成 WHERE SQL語句。 前面這個(gè)例子 相當(dāng)于這樣:
SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE name = 'Apress';
你可以傳遞多個(gè)參數(shù)到 filter() 來縮小選取范圍:
>>> Publisher.objects.filter(country="U.S.A.", state_province="CA") [<Publisher: Apress>]
多個(gè)參數(shù)會被轉(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也使用雙下劃線來表明會進(jìn)行一些魔術(shù)般的操作。這里,contains部分會被Django翻譯成LIKE語句:
SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE name LIKE '%press%';
其他的一些查找類型有:icontains(大小寫無關(guān)的LIKE),startswith和endswith, 還有range(SQLBETWEEN查詢)。
相關(guān)文章
Python 讀取千萬級數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫
這篇文章主要介紹了Python 讀取千萬級數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫,本篇文章會給大家系統(tǒng)的分享千萬級數(shù)據(jù)如何寫入到 mysql,分為兩個(gè)場景,兩種方式2022-06-06使用python從三個(gè)角度解決josephus問題的方法
這篇文章主要介紹了使用python從三個(gè)角度解決josephus問題的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Python數(shù)據(jù)類型學(xué)習(xí)筆記
這篇文章主要針對Python數(shù)據(jù)類型為大家進(jìn)行了詳細(xì)介紹,整理一篇關(guān)于Python數(shù)據(jù)類型的學(xué)習(xí)筆記,感興趣的小伙伴們可以參考一下2016-01-01python 爬蟲百度地圖的信息界面的實(shí)現(xiàn)方法
這篇文章主要介紹了python 爬蟲百度地圖的界面的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10