django常用的模型字段类型和常用的查询
生活随笔
收集整理的這篇文章主要介紹了
django常用的模型字段类型和常用的查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在使用的時候,可以設置DateField.auto_now每次保存對象時,自動設置該字段為當前時間。設置DateField.auto_now_add當對象第一次被創建時自動設置當前時間。
在使用的時候,傳遞datetime.datetime()進去。
例子理解
執行生成映射文件的命令后,查看數據表
Field字段常用的參數
- primary_key: 指定是否為主鍵。
- unique: 指定是否唯一。
- null: 指定是否為空,默認為False。
- blank: 等于True時form表單驗證時可以為空,默認為False。
- default: 設置默認值。
- DateField.auto_now: 每次修改都會將當前時間更新進去,只有調用,QuerySet.update方法將不會調用。這個參數只是Date和DateTime以及TimModel.save()方法才會調用e類才有的。
- DateField.auto_now_add: 第一次添加進去,都會將當前時間設置進去。以后修改,不會修改這個值
對于CharField必須設置 max_length
常用的查詢方法:
常用的查詢條件:
- first() 獲取第一條 返回的是對象
-
last() 獲取最后一條 返回的也是一個對象
思考:排序規則? 默認通過主鍵。通過_meta 設置 -
get(**kwargs) 根據給定的條件,獲取一個對象,如果有多個對象符合,保存
-
all() 獲取所有記錄 返回的是queryset
-
filter(**kwargs) 根據給定的條件,獲取一個過濾后的queryset,多個條件使用and連接。
-
exclude(**kwargs) 跟filter使用方法一致,作用想反,它是排除。
-
多條件的OR連接 用到Q對象,django.db.models.Q
-
values(*fields) 返回一個queryset,返回一個字典列表,而不是數據對象。
-
only(*fiels) 返回querySet ,對象列表,注意only一定包含主鍵字段
-
defer(*fields) 返回一個QuerySet,作用和only相反
-
order_by(*fields) 根據給定的字段來排序 默認是順序,字段名前加上 ‘-’代表反序
-
切片 和python的列表切片用法相似,不支持負索引,數據量大時不用步長
*** 切片過后,不再支持,附加過濾條件與排序
-
- 常用查詢條件 filter,exclude, get
- exact
- iexact
- contains
- icontains
- in
- range
- gt
- gte
- lt
- lte
- startswith
- istartswith
- endswith
- iendswith
- isnull True False 對應 IS NULL IS NOT NULL
- 聚合
from django.db.models import Count, Avg, Max, Min, Sum
通過queryset的aggregate方法
Student.objects.aggregate(age_avg=Avg(‘age’)) # 計算平均年齡- count
- 平均值 Avg
總結
以上是生活随笔為你收集整理的django常用的模型字段类型和常用的查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django数据库迁移问题
- 下一篇: 中厨办丰膳,烹羊宰肥牛。