美文网首页
Django数据库演示工具的使用, 学习对数据库的操作

Django数据库演示工具的使用, 学习对数据库的操作

作者: MkTom | 来源:发表于2019-08-26 21:51 被阅读0次

输入命令python manage.py shell进入shell

在此模式下能够进行对django数据库的各种操作
初学者可以通过这个方式学习很多django的视图对数据库的操作

1. 增

导入模型类
1) save()   # 二行实现保存
    1. 实例化模型类
    2. 模型类.save()
2) create()   # 一行实现保存
    模型类.objects.create()

2. 查

基本查询

1)模型类.objects.all()  # 查询多个结果
2)模型类.objects.get (字段名=xx)  # 查询单一结,果,如果不存在会报错, 结果超过1会报错
3)模型类.count()    # 查询结果数量

过滤查询

1)相等
    模型类.objects.filter(字段__exact=xx)   # 等同于  模型类.objects.filter(字段=xx) 
2)模糊查询
    模型类.objects.filter(字段__contains=xx)   # 查询数据库中字段名包含xx的数据
    模型类.objects.filter(字段__startswith=xx)   # 查询数据库中字段以xx开头的数据
    模型类.objects.filter(字段__endswith=xx)   # 查询数据库中字段以xx结尾的数据
# 以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact、icontains、istartswith、iendswith.
3) 空查询
    模型类.objects.filter(字段__isnull=False)   # 查询该字段非空的数据
4) 范围查询
    模型类.objects.filter(字段__in[1,2,3])  # 查询字段为1或2或3的数据
5) 比较查询
    # gt 大于 (greater then)
    # gte 大于等于 (greater then equal)
    # lt 小于 (less then)
    # lte 小于等于 (less then equal)
    # exclude 不等于
    模型类.objects.filter(字段__gt=3)  # 查询字段大于3的数据 
    模型类.objects.filter(字段__gte=3)  # 查询字段大于等于3的数据 
    模型类.objects.filter(字段__lt=3)  # 查询字段小于3的数据 
    模型类.objects.filter(字段__lte=3)  # 查询字段小于等于3的数据 
    模型类.objects.exclude(字段=3)  # 查询字段小于等于3的数据 
6) 日期查询
year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。
    模型类.objects.filter(字段__year=1980)    # 查询1980年的数据
    模型类.objects.filter(字段__gt=date(1990, 1, 1))    # 查询1980年1月1日后的数据

F对象

两个字段的比较用到F对象

from django.db.models import F
模型类.objects.filter(字段a__gt=F('字段b'))    # 字段a大于字段b的数据
模型类.objects.filter(字段a__gt=F('字段b') * 2)    # 字段a大于字段b两倍的数据

Q对象

多个过滤器逐个调用表示逻辑与关系,同sql语句中where部分的and关键字。
如果需要实现逻辑或or的查询,需要使用Q()对象结合|运算符
Q对象可以使用&、|连接,&表示逻辑与,|表示逻辑或。
Q对象前可以使用~操作符,表示非not。

1)逻辑与的实现
    模型类.objects.filter(字段A__gt=20,字段B__lt=3)    # 字段A大于20且字段B小于3的图书
2)用Q对象实现多个字段或的过滤
from django.db.models import Q
模型类.objects.filter(Q(字段A__gt=20) | Q(字段B__lt=3))
# 

相关文章

网友评论

      本文标题:Django数据库演示工具的使用, 学习对数据库的操作

      本文链接:https://www.haomeiwen.com/subject/oozusctx.html