ORM单表操作

1.单表增删改查

from app01.models import *

def index(request):

    return render(request,"index.html")

def addbook(request):
    #第一种添加方式
    # b=Book(name="英语基础",price=12,author="chen",pub_date="2019-10-10")
    # b.save()

    #第二种添加方式
    Book.objects.create(name="java",price=10,author="jian",pub_date="2017-11-12")

    #由于前段返回的数据可能是一组组键值对,键与表单内容头名一致,可直接添加字典
    #Book.objects.create(**dic)
    return HttpResponse("add success")


def update(request):

    #第一种方式
    Book.objects.filter(author="yuan").update(price=999)  #首先查找在更新

    #第二种修改方式,只能修改一个对象!
    # b=Book.objects.get(author="oldboy")
    # b.price=120
    # b.save()  每一个字段重新赋同样值,效率很低

    #b=Book.objects.filter(author="oldboy")
    # print(b)#<QuerySet [<Book: Book object>]>
    # print(type(b))

    return HttpResponse("update success")


def delete(req):

    Book.objects.filter(author="oldboy").delete()

    return HttpResponse("success")

def select(req):
    # book_list=Book.objects.all() #取出所有
    # print(book_list)
    # print(book_list[0])#Book object

    # book_list = Book.objects.filter(id=2)
    # book_list = Book.objects.all()[::2]  #切片,隔一个取一个
    # book_list = Book.objects.all()[::-1]  #倒序取所有
    # book_list = Book.objects.first()  #取第一个
    # book_list = Book.objects.last()   #取最后一个
    # book_list = Book.objects.get(id=2)#只能取出一条记录时才不报错
    # ret1=Book.objects.filter(author="chen").values("name")  #取出作者为oldboy的所有书名,字典集合
    # ret2=Book.objects.filter(author="chen").values_list("name","price")  ##列表形式
    # book_list=Book.objects.exclude(author="jian").values("name","price")  #取出作者非yuan的书名和价格


    # book_list= Book.objects.all().values("name").distinct()   ##某一个字段去重
    # book_count= Book.objects.all().values("name").distinct().count()  ###去重过后有几本书
    # print(book_count)

2.单表模糊查询

    # book_list=Book.objects.filter(price__gt=50).values("name","price") ##价格大于等于50的书的名字和价格
    # book_list=Book.objects.filter(name__contains="P").values_list("name","price")  ##书名中带有p的书名和价格

    #name_icontains 不区分大小写
    
    
    # Book.objects.filter(id_lt=100,id_gt=20) #获取id在(20,100)的数据
    # Book.objects.filter(id_in=[10,24,56]) #获取id为10,24,56的数据
    # Book.objects.exclude(id_in=[10,24,56]) #获取id不为10,24,56的数据
    # Book.objects.filter(id_range=[1,8]) ##获取id在[1,8]的数据
    
    # startswith-istartswith,endwith-iendwith

 

# book_list=Book.objects.filter(price__gt=50).values("name","price") ##价格大于等于50的书的名字和价格
# book_list=Book.objects.filter(name__contains="P").values_list("name","price") ##书名中带有p的书名和价格

#name_icontains 不区分大小写


# Book.objects.filter(id_lt=100,id_gt=20) #获取id在(20,100)的数据
# Book.objects.filter(id_in=[10,24,56]) #获取id为10,24,56的数据
# Book.objects.exclude(id_in=[10,24,56]) #获取id不为10,24,56的数据
# Book.objects.filter(id_range=[1,8]) ##获取id在[1,8]的数据

# startswith-istartswith,endwith-iendwith
posted @ 2020-05-20 15:42  丑丑的大灰狼  阅读(142)  评论(0)    收藏  举报