天天操天天拍-天天操天天射天天-天天操天天射天天操-天天操天天添-欧美乱码伦视频免费-欧美乱一级在线观看

您現(xiàn)在所在的位置:首頁 >學習資源 > Python全棧+人工智能入門教材 > Python基礎入門教程69:Django查詢集

Python基礎入門教程69:Django查詢集

來源:奇酷教育 發(fā)表于:

查詢集Django 模型通過默認的 Manager 類objects來訪問數(shù)據(jù)庫。例如,要打印所有 Job 的列表,則應該使用objects管理器的all方法:清

查詢集

Django 模型通過默認的 Manager 類 objects 來訪問數(shù)據(jù)庫。例如,要打印所有 Job 的列表,則應該使用 objects 管理器的 all 方法:

清單 11. 打印所有的職位
1
2
3
>>> from jobs.models import Job
>>> for job in Job.objects.all():
...     print job

Manager 類還有兩個過濾方法:一個是 filter,另外一個是 exclude。過濾方法可以接受滿足某個條件的所有方法,但是排除不滿足這個條件的其他方法。下面的查詢應該可以給出相同的結(jié)果(“gte” 表示 “大于或等于”,而 “lt” 表示 “小于”)。

清單 12. 排除和過濾職位
1
2
3
4
>>> from jobs.models import Job
>>> from datetime import datetime
>>> q1 = Job.objects.filter(pub_date__gte=datetime(2006, 1, 1))
>>> q2 = Job.objects.exclude(pub_date__lt=datetime(2006, 1, 1))

filter 和 exclude 方法返回一些 QuerySet 對象,這些對象可以鏈接在一起,甚至可以執(zhí)行連接操作。下面的 q4 查詢會查找從 2006 年 1 月 1 日開始在俄亥俄州的 Cleveland 張貼的職位:

清單 13. 對職位進行更多的排除和過濾
1
2
3
4
5
>>> from jobs.models import Job
>>> from datetime import datetime
>>> q3 = Job.objects.filter(pub_date__gte=datetime(2006, 1, 1))
>>> q4 = q3.filter(location__city__exact="Cleveland",
...                location__state__exact="Ohio")

QuerySets 是惰性的,這一點非常不錯。這意味著只在對數(shù)據(jù)庫進行求值之后才會對它們執(zhí)行查詢,這會比立即執(zhí)行查詢的速度更快。

這種惰性利用了 Python 的分片(slicing)功能。下面的代碼并沒有先請求所有的記錄,然后對所需要的記錄進行分片,而是在實際的查詢中使用了 5 作為 OFFSET、10 作為 LIMIT,這可以極大地提高性能。

清單 14. Python 分片
1
2
3
>>> from jobs.models import Job
>>> for job in Job.objects.all()[5:15]
...     print job

注意:使用 count 方法可以確定一個 QuerySet 中有多少記錄。Python 的 len 方法會進行全面的計算,然后統(tǒng)計那些以記錄形式返回的行數(shù),而 count 方法執(zhí)行的則是真正的 SQL COUNT 操作,其速度更快。我們這樣做,數(shù)據(jù)庫管理員會感激我們的。

清單 15. 統(tǒng)計記錄數(shù)
1
2
3
>>> from jobs.models import Job
>>> print "Count = ", Job.objects.count()       # GOOD!
>>> print "Count = ", len(Job.objects.all())    # BAD!

主站蜘蛛池模板: 国产视频一二区 | 国产日产欧产精品精品图片 | 久久精品成人 | 九九热在线视频 | 国产91精品福利在线观看 | 国产精品麻豆久久99 | 国产伦精品一区二区三区精品 | 精品免费视在线视频观看 | 久久免费视频3 | 毛片.com| 久久91精品国产91久久麻豆 | 精品视频在线观看免费 | 福利久久 | 国产亚洲美女精品久久久久狼 | 毛片无码国产 | 国产精品jizz在线观看网站 | 国产午夜精品美女免费大片 | 国产久草视频 | 成年美女黄网站小视频 | 久久怡红院亚欧成人影院 | 簧片免费在线观看 | 国产伦精品一区二区三区在线观看 | 麻豆国产精品有码在线观看 | 韩国一区二区三区视频 | 成人亚洲综合 | 国产精品嫩草免费视频 | 国产精品久久精品牛牛影视 | 精品国产97在线观看 | 久青草国产97香蕉在线视频xx | 国产91精品高跟丝袜在线 | 久久国产偷 | 国产大片免费观看中文字幕 | 国产一级毛片夜一级毛片 | 国产伦精品一区二区三区在线观看 | 国产一区二区免费不卡在线播放 | 韩国三级欧美三级国产三级 | 成人狠狠色综合 | 国产精品一区二区久久精品 | 免费精品美女久久久久久久久久 | 久久综合本色宗合一本色 | 成人久久免费视频 |