__year
__year
是DateField数据类型的年份,=
号后面为数字
# -*- coding: utf-8 -*- from statistics import mode from django.shortcuts import render,HttpResponse from app1_model import models def add_book(request): #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10") books = models.Book.objects.filter(pub_date__year=1798) print(books) return HttpResponse('<p>查找成功!</p>')
- 访问测试
__month
__month
是DateField数据类型的月份,=
号后面是数字
# -*- coding: utf-8 -*- from statistics import mode from django.shortcuts import render,HttpResponse from app1_model import models def add_book(request): #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10") books = models.Book.objects.filter(pub_date__month=10) print(books) return HttpResponse('<p>查找成功!</p>')
- 访问测试
__day
__day
是DateField数据类型的天数,=
号后面为数字
# -*- coding: utf-8 -*- from statistics import mode from django.shortcuts import render,HttpResponse from app1_model import models def add_book(request): #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10") books = models.Book.objects.filter(pub_date__day=13) print(books) return HttpResponse('<p>查找成功!</p>')
访问测试
(4)删除数据
- 菜鸟教程中的删除方法同样是两种,分别是:
- 使用模型类的
对象.delete()
,返回值:元组,第一个元素为受影响的行数- 使用QuerySet
类型数据.delete()
,返回值:元组,第一个元素为受影响的行数
- 这里使用第二种,实例:
# -*- coding: utf-8 -*- from statistics import mode from django.shortcuts import render,HttpResponse from app1_model import models def add_book(request): #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10") books = models.Book.objects.filter(pk__in=[4,5]).delete() print(books) return HttpResponse('<p>删除成功!</p>')
- 访问测试,查看mysql数据库
- 注意:
- Django删除数据时,会模仿SQL约束
ON DELETE CASCADE
的行为,也就是删除一个对象时也会删除与他相关联的外键对象- Django()方法是
QuerySet
数据类型的方法,但并不适用于Manager本身,也就是想要删除所有数据,不能不写all
books=models.Book.objects.delete() # 报错 books=models.Book.objects.all().delete() # 删除成功
(5)修改数据
- 修改数据同样有两种方式,分别是:
- 方法 模型类的对象.属性 = 更改的属性值 模型类的对象.save() - 返回值 编辑的模型类的对象
- 方法 QuerySet数据类型.update(字段名称=更改的数据) - 返回值 整数(受影响的行数)
- 这里使用第二种,实例:
# -*- coding: utf-8 -*- from statistics import mode from django.shortcuts import render,HttpResponse from app1_model import models def add_book(request): #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10") books = models.Book.objects.filter(pk__in=[1,2]).update(price=450) print(books) return HttpResponse('<p>修改成功!</p>')
- 访问测试,查看mysql数据库