django模型 - 前端笔记-#  插入數據 from book.models import book # 1 插入方式一 boo = book(name='111') boo...

学习笔记

乾坤未定,你我皆是黑马
乾坤已定,我便扭转乾坤
首页>> 基础知识 >>django模型 - 前端笔记
2020-5-15
分类: 基础知识

django模型

文章作者:痴迷

#  插入數據 from book.models import book # 1 插入方式一 boo = book(name='......

#  插入數據
from book.models import book

# 1 插入方式一
boo = book(name='111')

boo.save()

# 插入方式二
book.objects.create(name='222')

#  更新數據

# 方式一
from book.models import book

boo = book.objects.get(id=1)
boo.name = '222'
boo.save()

# 方式二
book.objects.filter(id=1).update(
name=30
)

# 刪除數據

# 方式一
from book.models import book

boo = book.objects.get(id=2)
boo.delete()

# 方式二
book.objects.filter(id=3).delete()

# 查询数据
from book.models import book

#
try:
boo = book.objects.get(id=6)
except book.DoesNotExist:
pass

#
book.objects.all()
# get 返回的的对象
# filter 返回的列表

from book.models import book

# 获取个数
book.objects.all().count()

# 大于,小于
book.objects.filter(id__gt=7) # 大于7的值
book.objects.filter(id__gte=7) # 大于等于7的值
book.objects.filter(id__lt=7) # 小于7的值
book.objects.filter(id__lte=7) # 小于等于7的值
book.objects.filter(id__lt=10, id__gt=1) # 大于1 小于10

# 成员判断 in
book.objects.filter(id__in=[1, 9, 8]) # 获取id等于 1 , 9 ,8的

# 是否为空isnull
book.objects.filter(id__isnull=True) # id这一项是否为空的

# 包括contains
book.objects.filter(name__contains='1') # 获取所以name包含1的值
book.objects.filter(name__icontains='2') # 获取所以name包含2的值 # 大小写不明感

# 排序 order_by
book.objects.filter(id__gt=1, id__lt=10).order_by('id') # 以id开始 asc 排序
book.objects.filter(id__gt=1, id__lt=10).order_by('-id') # 以id开始 desc 排序

# 分组group_by
from django.db.models import Avg, Max, Min, Count, Sum

book.objects.all().aggregate(Count('id')) # 获取所以id的 个数
book.objects.all().aggregate(Max('id')) # 获取最大的id
book.objects.all().aggregate(Avg('id')) # 获取平均的id

# 正侧匹配 regex ,不区分大小写 iregex

book.objects.filter(name__regex=r'^1') # 正侧匹配以1开头的
book.objects.filter(name__iregex=r'^1') # 正侧匹配以1开头的,不区分大小写

# date
book.objects.filter(name__date=datetime.date(2005, 2, 6))

# year
book.objects.filter(name__year=2005)

# F对象 ,两个属性直接打对比

from django.db.models import F

book.objects.filter(id__gte=F('age')) # id大于等于age的

# Q对象
from django.db.models import Q

book.objects.filter(id=10, name='222') # 并且
book.objects.filter(Q(id=7) | Q(id=10)) # 或者
book.objects.filter(~Q(id=10)) # 取反

#  关联查询  查询外键的

# 1.以知 主表数据 , 关联查询从表数据
boo = book.objects.get(id=10) # 查询id为10的数据
boo.bookinfo_set.all() # 从id为10的数据中关联查询 booinfo中的数据

# 2.已知 主表数据,关联查询
from book.models import bookinfo

boo = bookinfo.objects.get(id=10)
boo.book # book是boo数据中的对象

# 3.以知主表,条件是从表
book.objects.filter(bookinfo__name='111')

# 4.以知从表,条件是主表
bookinfo.objects.filter(book__name='111')

# limit 限制查询

book.objects.filter(id__name='111')[0:3]

# 分页 django
from django.core.paginator import Paginator

from book.models import book

boo = book.objects.all()
p = Paginator(boo, 6)
p.page(1) # 当前页码
p.count # 总数

×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » django模型
版权所有:《前端笔记
文章标题:《django模型
除非注明,文章均为 《前端笔记》 原创
转载请注明本文短网址:https://blog.dbsgw.cn/post-221.html

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)