from django.shortcuts import render ,HttpResponse,render_to_response,redirect
from app01 import models
from app01.models import Book
from app01.models import Publish
#添加对象
def data_oper(req):
#4.测试sql语句有没有执行
#4.1.
obj_set=models.Book.objects.filter(id=1)
for obj in obj_set:
#此处执行的for循环将数据取出来,放到了Django提供的cache中
print(obj.title) # python
#如果在执行一次for循环,会从缓存中去取数据
#但是加上这条语句,就还是会从数据库中拿数据:
obj_set.update(title='ppp')
for obj in obj_set:
print(obj.title) # ppp
#4.2 if 后执行了sql语句
# if obj_set: # 如果这样写,会将数据读入到缓存中,降低效率
# print('i am happy ')
#解决方法:调用exists()方法,但是还是会读取数据,不会将数据读入到内存中
#除此之外,更好的方法是调用queryset的iterator()方法,即迭代器,
# 用什么才去取什么,iterator()方法将queryset的所有方法封装在内,开发中提高了效率
#1.create方式
# Book.objects.create(
#
# title='star加油',
# price=1,
# color='green',
#
# publisher_id=4,
#
# )
# Publish.objects.create(
# id=4,
# name='北京出版社',
# city='北京'
#
# )
# 2.给第三张表添加数据
# models.Book2Author.objects.create(
# book_id=1,
# author_id=4
# )
#3.删除(级联删除)--第三张表中,与id=2相关联的数据也没有了
# models.Book.objects.filter(id=2).delete()
#2.
# book=Book.objects.filter(id=2).values('price')[{'price':45}]
# authors=models.Author.objects.filter(id__gt=1)
# authors=models.Author.objects.order_by('-id')
# authors=models.Author.objects.filter(id=1)[0]
# author1=models.Author.objects.get(id=1)
# author2=models.Author.objects.get(id=2)
# book=models.Book.objects.filter(id=3)[0]
#book.author指Book绑定的author集合
# book.author.add(author1,author2)
# book.author.append(authors)
return HttpResponse('ok')