django学习笔记---orm增删改查

增加

def add(request):
	import datatime
	#方式1
	book_obj=models.Book(
		title='',
		state='',
		)
	#方式二
	book_obj2=models.Book.objects.create(
		title='',
		state='',
		)
	book.obj2.save()#保存数据
	#create方法会返回新添加这条记录的类对象,通过这个对象,属性的方式能够获取到对应字段的数据
	return   pass
		

批量创建可以通过循环进行或者

objc_list-[]
models.Book.objects.bulk_create(objc_list)

更新或增加
update_or_create,内部查询时使用的是get查询

def add(request):
	models.Book.object.update_or_create( xxx,defaults={
     }  ) #数据库中有就更新没有就添加

查询或创建
get_or_create 有就打印,没有就创建 同样查询时内部使用的是get方法 返回结果第二个参数为是否创建的布尔值

def add(request):
	ret=models.Book.object.get_or_create( xxx,defaults={
     }  ) 
	print(ret)   #结果为model对象

几个简单查询方法

def get_book(request):
	obj_list=models.Book.objects.all()#查询所有,返回的时Queryset类似于列表,但是比列表还多一些功能,这是orm给封装的新的数据类型
	#索引取值同样适用
	return  pass
	#过滤查询
	obj_l=models.Book.objects.filter()
	#get()过滤查询,但是结果只能有一条,结果不是qureyset类型数据,而是一个模型对象
	obj_l=models.Book.objects.get()
	#这个对象包含所有字段,结果不只一个或查询不到数据时会报错

同时可以在数据库类中定义一个方法用来打印数据名称

class book():
	def  __str__(self):
		print(self.tittle)

删除

def delete_(request):
	#调用者可以是model对象
	models.Book.objects.get().delete()
	#同样也可以是queryset类型
	models.Book.objects.filter().delete()
	#因为怕错误删除所有,object下没有delete方法
	models.Book.objects.delete()

修改

def update(request):
	#方法一
	a=models.Book.objects.get()
	a.title=''
	a.save()
	#方式二   当参数使用字段赋值时是整列更新
	models.Book.updata()
	#也可使是queryset数据进行更新,但不能是模型类对象
	models.Book.all().updata()
	a=models.Book.all().updata()
	print(a)#受影响的行数
	return pass

你可能感兴趣的:(django)