中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python Django2 model 查詢介紹(條件、范圍、模糊查詢)

發布時間:2020-09-19 17:24:51 來源:腳本之家 閱讀:491 作者:森林嶼麓 欄目:開發技術

條件查詢

范圍查詢

模糊查詢

條件查詢

all()

返回全部結果集

filter(**kwargs)

返回滿足參數定義的結果集 例如

Entry.objects.filter(pub_date__year=2006)

exclude(**kwargs)

返回不滿足參數定義的結果集 例如

Entry.objects.exclude(pub_date__year=2006)

鏈式查詢

Entry.objects.filter(... 
  headline__startswith='What'... )
.exclude(...
   pub_date__gte=datetime.date.today()... )
.filter(...
   pub_date__gte=datetime.date(2005, 1, 30)... )

也可以這樣

q1 = Entry.objects.filter(headline__startswith="What")
q2 = q1.exclude(pub_date__gte=datetime.date.today())
q3 = q1.filter(pub_date__gte=datetime.date.today())

或者

q = Entry.objects.filter(headline__startswith="What")
q = q.filter(pub_date__lte=datetime.date.today())
q = q.exclude(body_text__icontains="food")
get()

filter()返回的是一個結果集,如果你確定你要返回的是一條結果,那么就可以使用get() 例如

Entry.objects.get(pk=1)

get()與filter()區別

get()返回單一的一條記錄,返回類型也是一個對象,filter()返回的實際一個結果集,返回類型為列表。
使用get(),如果查詢結果為空,將會引起DoesNotExist exception,而filter()將會返回[]

范圍查詢

Limiting
Entry.objects.all()[:5]

將會返回前5條記錄

Entry.objects.all()[5:10]

將會返回5~10條記錄

order_by

排序

Entry.objects.order_by('headline')[0]

將會按照'headline'進行排序,然后返回第一條記錄

語法:字段 + 兩條下劃線 + 內置查詢字段

lt(lte): 小于(小于等于)

Entry.objects.filter(pub_date__lte='2006-01-01')

等同于

SELECT * FROM ... WHERE pub_date <= '2006-01-01';

gt(gte): 大于(大于等于)

in

Entry.objects.filter(id__in=[1,3])

模糊查詢

range

常用來篩選出屬于某個連續區間的對象

Entry.objects.filter(id__range=[1,3])
contains 

包含‘xxx'(大小寫敏感),常用于找出包含某些關鍵字的對象

Entry.objects.filter(type__name__contains='python')

等同于

SELECT ... WHERE name LIKE '%python%';

類似的有icontains (大小寫不敏感)。注意contains是大小寫敏感的,icontains是大小寫不敏感的。

startswith

以‘xxx'開頭(大小寫敏感)

Entry.objects.filter(name__startswith='高級')

等同于

SELECT ... WHERE name LIKE '高級%';

類似的有istartswith (大小寫不敏感)

endswith

以‘xxx'結尾(大小寫敏感)

類似的有iendswith (大小寫不敏感)

isnull

可設置為True或者False,用來篩選某字段 為NULL / 不為NULL 的對象

Entry.objects.filter(description__isnull=True)

等同

SELECT ... WHERE description IS NULL;

補充知識:Django filter **conditions多條件多字段過濾篩選數據

Application context 應用場景:

新增的一條數據不能與DB庫里有的數據重復或者需要多條件/多字段篩選數據時需要用到 **conditions

conditions ={
  'server_ip': ip,
  "bk_biz_id": bk_biz_id,
  'cron_min': c["cron_min"],
  'cron_hour': c["cron_hour"],
  'cron_day': c["cron_day"],
  'cron_month': c["cron_month"],
  'cron_week': c["cron_week"],
  'cron_task': c["cron_task"],
  "creator": c["user"],
  "deleted": 0
}
query_set = CrontabInfo.objects.filter(**conditions)

以上這篇Python Django2 model 查詢介紹(條件、范圍、模糊查詢)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉树县| 读书| 丽江市| 东方市| 襄汾县| 安泽县| 黎平县| 株洲县| 仙游县| 育儿| 灵川县| 喀喇| 谷城县| 西盟| 图木舒克市| 罗山县| 剑川县| 普兰店市| 玉环县| 渝中区| 金沙县| 微博| 红河县| 昌平区| 边坝县| 广元市| 浠水县| 太湖县| 玉田县| 子长县| 凤阳县| 玉门市| 璧山县| 广宗县| 赤水市| 灌云县| 共和县| 呼伦贝尔市| 锡林郭勒盟| 龙陵县| 健康|