Django 內建查詢表示式

2021-09-10 23:12:27 字數 1607 閱讀 5744

django 內建了很多查詢表示式,建議過一遍 django 官方文件留個印象,了解每個表示式的作用,以後碰到相關的需求就可以快速定位到文件查詢其用途:field lookups

django使用filter時為了提高查詢效率,有以下幾種常用方法:

contains是精確大小寫

qs.filter(name__contains="e")
sql語句 :

'contains': 'like binary %s',
』icontains』中的』i』表示忽略大小寫

qs.filter(name__icontains="e")
sql語句 :

'icontains': 'like %s',
在列表中

entry.objects.filter(id__in=[1, 3, 4])
sql語句 :

select ... where id in (1, 3, 4);
gt:大於

entry.objects.filter(id__gt=4)
sql語句 :

select ... where id > 4;
同理還有 gte lt lte (大等、小於、小等)

查詢以***開頭並區分大小寫

entry.objects.filter(headline__istartswith='will')
sql語句 :

select ... where headline ilike 'will%';
同理還有 istartwith :查詢以***開頭不區分大小寫

查詢***以結尾並區分大小寫

entry.objects.filter(headline__endswith='cats')
sql語句 :

select ... where headline like '%cats';
同理還有 iendwith :查詢以***結尾不區分大小寫

(7)range

查詢範圍:

import datetime

start_date = datetime.date(2005, 1, 1)

end_date = datetime.date(2005, 3, 31)

entry.objects.filter(pub_date__range=(start_date, end_date))

sql語句 :

select ... where pub_date between '2005-01-01' and '2005-03-31';
這樣的方法還多,推薦看一遍官方文件

這些django內建的方法都非常好用,記住後對於基礎的搜尋以及查詢都會簡單不少。

查詢表示式

這個特性使得你可以在c 中使用sql類似風格的語句,也被稱作linq 語言整合查詢 舉例來說,你可以這樣描述你的資料 ublic class coordinate 在c 裡,你可以像下面一樣輕鬆的宣告乙個資料庫表的邏輯等同式 use object and collection initializer...

查詢表示式

版本 新增功能 5.0.9 比較運算增加閉包子查詢支援 5.0.4 支援對同乙個字段多次呼叫查詢方法 查詢表示式支援大部分的sql查詢語法,也是 thinkphp 查詢語言的精髓,查詢表示式的使用格式 where 欄位名 表示式 查詢條件 where or 欄位名 表示式 查詢條件 表示式不分大小寫...

表示式語言 內建物件

在表示式語言中存在很多內建物件,page contenttype text html pageencoding gbk pagecontext.setattribute info page屬性範圍 request.setattribute info request屬性範圍 session.setat...