單表操做html
新增數據
models.類名.objects.create()
models.類名().save()
修改
models.類名.objects.filter(條件).update()
obj = models.類名.objects.filter(條件)
obj.屬性 = 值
obj.save()
刪除
models.類名.objects.filter().delete()
查詢
all() 查詢全部結果
filter 查詢符合條件的數據
get 返回一個符合條件的數據
exclude 返回不匹配的數據
order_by 排序
reverse 對查詢結果反向排序
count 計數
first 返回第一條數據
last 返回最後一條數據
exists 判斷
values 返回queryset對象裏面是字典
values_list 返回queryset對象裏面是元組
dstinct 去重
返回queryset對象的方法
all filter exclude order_by reverse distinct
特殊的queryset
values values_list
返回具體對象
get first last
基於雙下劃線模糊查詢
in 值是否在一個列表中
gt 大於
lt 小於
gte 大於等於
lte 小於等於
range 值是否在一個範圍內
contains
icontains
startswith
pub_date_year 按年查詢
https://www.cnblogs.com/liuqingzheng/articles/9472723.html
多表關聯數據庫
建立多表模型django
使用OneToOneField和ForeignKey模型表的字段後面會自動增長_id函數
ManyToManyField:會自動建立第三張表code
一對一的關係:OneToOneFieldhtm
一對多的關係:ForeignKey對象
多對多的關係:ManyToManyFieldblog
添加表記錄排序
多對多rem
add 添加記錄 能夠傳入對象,id
remove 刪除記錄 能夠傳入對象,id
clear 清空記錄 沒有參數
set 更新記錄 傳入列表
基於對象的跨表查詢
一對一:正向:按字段 反向:按表名小寫
一對多:正向:按字段 反向:按表名小寫_set.all()
多對多:正向:按字段 反向:按表名小寫_set.all()
基於對象的查詢是屢次查詢(子查詢)
基於雙下劃線的跨表查詢
正向按字段,反向按表名小寫
聚合查詢
from django.db.models import Avg,Sum,Max,Min,Count
models.類名.objects.all().aggregate(聚合函數)
分組查詢
from django.db.models import Avg,Sum,Max,Min,Count
models.類名.objects.annotate(別名=聚合函數)
F查詢:查詢的條件做用兩邊都來自於數據庫而非手動輸入的值
Q查詢:可以將filter內部默認的and關係轉換成須要的