在django中有相當多的操作是通過雙下劃線與動作連線起來使用,為了以後更加方便的查詢和使用,現在總結以下django中基本的雙下劃線操作
比較符:大於--gt 小於--lt 等於--eq 大於等於--gte 小於等於--lte
models.example.objects.filter(id__gt=1) # 獲取id大於1的值models.example.objects.filter(id__gte=1) # 獲取id大於等於1的值
models.example.objects.filter(id__lt=10) # 獲取id小於10的值
models.example.objects.filter(id__lte=10) # 獲取id小於10的值
models.example.objects.filter(id__lt=10, id__gt=1) # 獲取id大於1 且 小於10的值
範圍操作符:
包含-- in 在範圍內--range
models.example.objects.filter(id__in=[11, 22, 33]) # 獲取id等於11、22、33的資料models.example.objects.exclude(id__in=[11, 22, 33]) # not in 實際上是exclude的函式生效
包括--contain
models.example.objects.filter(name__contains="ven")models.example.objects.filter(name__icontains="ven") # icontains大小寫不敏感
models.example.objects.exclude(name__icontains="ven")
在範圍內--range
models.example.objects.filter(id__range=[1, 2]) # 範圍bettwen 1 and 2
匹配操作符
為空--isnull
entry.objects.filter(pub_date__isnull=true)
字元匹配:startswith,istartswith, endswith, iendswith, 『i代表大小寫不敏感』
類操作符:
對某一類進行排序--order by
models.example.objects.filter(name='seven').order_by('id') # asc 公升序models.example.objects.filter(name='seven').order_by('-id') # desc降序
對某一類進行歸類--group by
from django.db.models import count, min, max, summodels.example.objects.filter(c1=1).values('id').annotate(c=count('num'))
正則匹配 regex iregex(不區分大小寫)
entry.objects.get(title__regex=r'^(an?|the) +')entry.objects.get(title__iregex=r'^(an?|the) +')
日期相關 date year month day week_day hour minute second
entry.objects.filter(pub_date__date=datetime.date(2017, 1, 1))entry.objects.filter(pub_date__date__gt=datetime.date(2017, 1, 1))
entry.objects.filter(pub_date__year=2017)
entry.objects.filter(pub_date__year__gte=2017)
entry.objects.filter(pub_date__month=12)
entry.objects.filter(pub_date__month__gte=6)
entry.objects.filter(pub_date__day=3)
entry.objects.filter(pub_date__day__gte=3)
entry.objects.filter(pub_date__week_day=2)
entry.objects.filter(pub_date__week_day__gte=2)
event.objects.filter(timestamp__hour=23)
event.objects.filter(time__hour=5)
event.objects.filter(timestamp__hour__gte=12)
event.objects.filter(timestamp__minute=29)
event.objects.filter(time__minute=46)
event.objects.filter(timestamp__minute__gte=29)
event.objects.filter(timestamp__second=31)
event.objects.filter(time__second=2)
event.objects.filter(timestamp__second__gte=31)
Python中下劃線說明
在python中經常看到方法或者變數前帶有下劃線,稍作解釋。1.前後雙下劃線 mtthod 這一般是系統定義的特殊方法,類似於類的構造方法 init 2.前單下劃線 以單下劃線開頭的變數指的是變數的許可權型別為protected,即是保護許可權的變數,該型別的變數只能通過其本身及子類的例項物件能夠訪...
python中下劃線 的用途
python 用下劃線作為變數字首和字尾指定特殊變數。不能用 from module import 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開頭。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下劃線作為變數名的開頭。一般來講,...
文件中下劃線的含義
有時我們並有對文字設定下劃線格式,螢幕上卻出現了下劃線,這可能是由於以下原因 下劃線顏色 原因解決方法 圖例紅色或綠色波形下劃線 當自動檢查拼寫和語法時,word 用紅色波形下劃線表示可能的拼寫錯誤,用綠色波形下劃線表示可能的語法錯誤。對文件進行拼寫和語法檢查。電子郵件頭的紅色 黑色下劃線 word...