對sql中where的實現,作爲方法filter(),exclude(),get()的參數
語法: 屬性名稱__比較運算符=值
Person.objects.filter(p_age__gt=18)
條件
屬性__操作符=臨界值
gt
great than
gte
great than equals
lt
less than
lte
less than equals
gt,gte,lt,lte:大於,大於等於,小於小於等於filter(sage__gt=30)
in
in:是否包含在範圍內,filter(pk__in=[2,4,6,8])
單引號可以使用
exact*******
exact:判斷,大小寫不敏感,filter(isDelete = False)
startswtith
類似於 模糊查詢 like
endswith
以 xx 結束 也是like
contains
contains:是否包含,大小寫敏感,filter(sname__contains='趙')
isnull,isnotnull
isnull,isnotnull:是否爲空,filter(sname__isnull=False)
**
時間
**
models.DateTimeField(auto_now_add=True)
year
month 會出現時區問題 需要在settings中的USE-TZ中設置爲 False
day
week_day
hour
minute
second
orders = Order.objects.filter(o_time__month=9)
有坑:時區問題
關閉django中自定義的時區
USE-TZ=False
在數據庫中創建對應的時區表
注意:mysql oracle中所說的聚合函數 多行函數 組函數 都是一個東西 max min avg sum count
聚合函數/組函數/多行函數/高級函數
模型:
class Customer(models.Model):
c_name = models.CharField(max_length=16)
c_cost = models.IntegerField(default=10)
使用:
使用aggregate()函數返回聚合函數的值
**Avg**:平均值
**Count**:數量
**Max**:最大
**Min**:最小
**Sum**:求和
eg:
Student.objects.aggregate(Max('age'))