添加表记录
方法1
# create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象
book_obj=Book.objects.create(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
方法2
book_obj=Book(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
book_obj.save()
查询表纪录
查询api------>使用说明
<1> all(): 查询所有结果
<2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
<3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
<4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
<5> order_by(*field): 对查询结果排序
<6> reverse(): 对查询结果反向排序
<8> count(): 返回数据库中匹配查询(QuerySet)的对象数量。
<9> first(): 返回第一条记录
<10> last(): 返回最后一条记录
<11> exists(): 如果QuerySet包含数据,就返回True,否则返回False
<12> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
model的实例化对象,而是一个可迭代的字典序列
<13> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
<14> distinct(): 从返回结果中剔除重复纪录
views.py
from django.shortcuts import render,HttpResponse
# Create your views here.
from app01.models import Book
def index(request):
#--------------------添加记录
#方法1
#book_obj = Book(id=1,title='python 红宝书',price=100,pub_date='2012-12-12',publish='人民出出版社',state=True)
#book_obj.save()
#方法2
# book_obj=Book.objects.create(title='go',price=100,pub_date='2014-12-12',publish='山东教育出版社',state=True)
# print(book_obj.title)
# print(book_obj.price)
# print(book_obj.pub_date)
#---------------------查询
'''
1、方法的返回值类型 QuerySet
2、方法的调用者
:param request:
:return:
'''
# all方法 返回值是一个 QuerySet对象
#book_list=Book.objects.all()
# print(book_list) #[obj1.obj2]
# for obj in book_list:
# print(obj)
# print(book_list[1].title)
#first 和 last 方法
#book = Book.objects.all().last()
#print(book)
#filter() #条件过滤 返回 QuerySet对象
# book_list = Book.objects.filter(title='go')
# print(book_list)
#get() 有且只有1个时才有意义,返回值 model对象
# book_list= Book.objects.get(title='go')
# print(book_list.price)
#exclude 排除某个属性
# ret = Book.objects.exclude(title='go')
# print(ret)
#order_by -id 降序
# ret = Book.objects.all().order_by('id')
# print(ret)
#count() 计数
# ret = Book.objects.all().count()
# print(ret)
# exist()
# ret = Book.objects.all().exists()
# print(ret)
#value
# ret = Book.objects.all()
# for i in ret:
# print(i.title)
# 等价于
# ret = Book.objects.all().values('price')
# print(ret)
'''原理
values:
temp = []
for obj in Book.objects.all()
temp.append({
'price'=objects.objects
})
return temp
# [{'price': Decimal('100.00')}, {'price': Decimal('100.00')}, {'price': Decimal('100.00')}, {'price': Decimal('100.00')}
'''
# values_list 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
# ret = Book.objects.all().values_list('price')
# print(ret)
#distince 去重
# ret = Book.objects.all().values('price').distinct()
# print(ret)
#返回类型
#模糊查询
#GT 查询价格大于 99 lt 小于
ret =Book.objects.filter(price__gt=99,price__lt=101)
print(ret)
Book.objects.filter(price__in=[100, 200, 300])
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__range=[100, 200])
Book.objects.filter(title__contains="python")
Book.objects.filter(title__icontains="python")
Book.objects.filter(title__startswith="py")
Book.objects.filter(pub_date__year=2012)
return HttpResponse(r'ok')
11895932.jpg
网友评论