Django框架中數(shù)據(jù)的連鎖查詢和限制返回?cái)?shù)據(jù)的方法
連鎖查詢
通常我們需要同時(shí)進(jìn)行過濾和排序查詢的操作。 因此,你可以簡(jiǎn)單地寫成這種“鏈?zhǔn)健钡男问剑?/p>
>>> Publisher.objects.filter(country="U.S.A.").order_by("-name") [<Publisher: O'Reilly>, <Publisher: Apress>]
你應(yīng)該沒猜錯(cuò),轉(zhuǎn)換成SQL查詢就是 WHERE 和 ORDER BY 的組合:
SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE country = 'U.S.A' ORDER BY name DESC;
限制返回的數(shù)據(jù)
另一個(gè)常用的需求就是取出固定數(shù)目的記錄。 想象一下你有成千上萬的出版商在你的數(shù)據(jù)庫(kù)里, 但是你只想顯示第一個(gè)。 你可以使用標(biāo)準(zhǔn)的Python列表裁剪語句:
>>> Publisher.objects.order_by('name')[0] <Publisher: Apress>
這相當(dāng)于:
SELECT id, name, address, city, state_province, country, website FROM books_publisher ORDER BY name LIMIT 1;
類似的,你可以用Python的range-slicing語法來取出數(shù)據(jù)的特定子集:
>>> Publisher.objects.order_by('name')[0:2]
這個(gè)例子返回兩個(gè)對(duì)象,等同于以下的SQL語句:
SELECT id, name, address, city, state_province, country, website FROM books_publisher ORDER BY name OFFSET 0 LIMIT 2;
注意,不支持Python的負(fù)索引(negative slicing):
>>> Publisher.objects.order_by('name')[-1] Traceback (most recent call last): ... AssertionError: Negative indexing is not supported.
雖然不支持負(fù)索引,但是我們可以使用其他的方法。 比如,稍微修改 order_by() 語句來實(shí)現(xiàn):
>>> Publisher.objects.order_by('-name')[0]
相關(guān)文章
python 2.7 檢測(cè)一個(gè)網(wǎng)頁是否能正常訪問的方法
今天小編就為大家分享一篇python 2.7 檢測(cè)一個(gè)網(wǎng)頁是否能正常訪問的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python實(shí)現(xiàn)計(jì)算AUC的示例代碼
AUC(Area?under?curve)是機(jī)器學(xué)習(xí)常用的二分類評(píng)測(cè)手段,直接含義是ROC曲線下的面積。本文將利用Python語言實(shí)現(xiàn)計(jì)算AUC,感興趣的可以學(xué)習(xí)一下2022-07-07Python?Pyramid框架應(yīng)用場(chǎng)景及高級(jí)特性實(shí)戰(zhàn)
Pyramid是一個(gè)靈活且強(qiáng)大的Python?web框架,廣泛用于構(gòu)建各種規(guī)模的Web應(yīng)用程序,本文將深度探索Pyramid框架,介紹其核心概念、應(yīng)用場(chǎng)景以及一些高級(jí)特性2023-12-12python,Java,JavaScript實(shí)現(xiàn)indexOf
這篇文章主要介紹了python,Java,JavaScript如何實(shí)現(xiàn)indexOf,幫助大家更好的理解indexOf,感興趣的朋友可以了解下2020-09-09python實(shí)現(xiàn)AES算法及AES-CFB8加解密源碼
這篇文章主要為大家介紹了python實(shí)現(xiàn)AES算法及AES-CFB8加解密的源碼示例,有需要朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02