亚洲视频精品_木耳av在线_成年人免费看_久久精品香蕉_激情国产精品_亚洲第一se情网站

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

Python基礎(chǔ)入門教程69:Django查詢集

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

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

查詢集

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

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

Manager 類還有兩個(gè)過濾方法:一個(gè)是 filter,另外一個(gè)是 exclude。過濾方法可以接受滿足某個(gè)條件的所有方法,但是排除不滿足這個(gè)條件的其他方法。下面的查詢應(yīng)該可以給出相同的結(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 對(duì)象,這些對(duì)象可以鏈接在一起,甚至可以執(zhí)行連接操作。下面的 q4 查詢會(huì)查找從 2006 年 1 月 1 日開始在俄亥俄州的 Cleveland 張貼的職位:

清單 13. 對(duì)職位進(jìn)行更多的排除和過濾
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 是惰性的,這一點(diǎn)非常不錯(cuò)。這意味著只在對(duì)數(shù)據(jù)庫進(jìn)行求值之后才會(huì)對(duì)它們執(zhí)行查詢,這會(huì)比立即執(zhí)行查詢的速度更快。

這種惰性利用了 Python 的分片(slicing)功能。下面的代碼并沒有先請(qǐng)求所有的記錄,然后對(duì)所需要的記錄進(jìn)行分片,而是在實(shí)際的查詢中使用了 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 方法可以確定一個(gè) QuerySet 中有多少記錄。Python 的 len 方法會(huì)進(jìn)行全面的計(jì)算,然后統(tǒng)計(jì)那些以記錄形式返回的行數(shù),而 count 方法執(zhí)行的則是真正的 SQL COUNT 操作,其速度更快。我們這樣做,數(shù)據(jù)庫管理員會(huì)感激我們的。

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

主站蜘蛛池模板: 日韩精品成人免费观看 | 亚洲精品日韩一区二区 | 日本三级韩国三级美三级91 | 久久精品综合 | 国产精品欧美亚洲韩国日本久久 | 在线精品国产成人综合第一页 | 无翼乌工口肉肉无遮挡无码18 | 国产精品嫩草视频永久网址 | 四虎影视永久在线精品 | 欧美午夜精品一区二区蜜桃 | 亚洲欧美熟妇综合久久久久 | 极品美女国产精品免费一区 | 国产精品成人观看视频国产 | 又爽又黄禁片视频1000免费 | 老司机最新网址 | 无线乱码一二三区免费看 | 国产精品久久久久网站 | 精品一区二区三区影片 | 日本大片免费观看视频 | 欧美日韩永久久一区二区三区 | 香蕉久久ac一区二区三区 | 精品国产福利第一区二区三区 | 看全色黄大色黄大片毛片 | 国产ww久久久久久久久久 | 久久99中文字幕久久 | 免费看一区二区三区 | 国产欧美一区二区精品久久久 | 精品欧美视频 | 污污内射在线观看一区二区少妇 | 色一级 | 日本一级片在线 | 亚洲色图首页 | 国产69精品久久久久999三级 | 亚洲精品久久久久成人2007 | 18禁真人抽搐一进一出在线 | 成人精品一区二区久久 | 国产高清天干天天美女 | 欧美日韩一区二区成人午夜电影 | 亚洲 小说 欧美 激情 另类 | 精品无码一区二区三区爱欲 | 久久香蕉国产精品一区二区三 |