首页 > 代码库 > django数据库基本操作-增删改查(tip)-基本

django数据库基本操作-增删改查(tip)-基本

1、插入数据

1 Python代码
2 >>> from books.models import Publisher  
3 >>> p1 = Publisher(name=Apress, address=2855 Telegraph Avenue,  
4 ...     city=Berkeley, state_province=CA, country=U.S.A.,  
5 ...     website=http://www.apress.com/)  
6 >>> p1.save()  
1 >>> from books.models import Publisher  
2 >>> p1 = Publisher(name=Apress, address=2855 Telegraph Avenue,  
3 ...     city=Berkeley, state_province=CA, country=U.S.A.,  
4 ...     website=http://www.apress.com/)  
5 >>> p1.save()  

2、查询

1 Python代码
2 >>> Publisher.objects.all()  
3 [<Publisher: Apress>, <Publisher: OReilly>]  
1 [python] view plain copy
2 >>> Publisher.objects.all()  
3 [<Publisher: Apress>, <Publisher: OReilly>]  

获取单个对象:

 

1 Python代码
2 >>> Publisher.objects.get(name="Apress")  
3 <Publisher: Apress>  
1 [python] view plain copy
2 >>> Publisher.objects.get(name="Apress")  
3 <Publisher: Apress>  

如果结果是多个对象或者没有返回结果则会抛出异常

 

 

3、条件

筛选:

1 Python代码
2 >>> Publisher.objects.filter(name=Apress)  
3 [<Publisher: Apress>] 
1 >>> Publisher.objects.filter(name=Apress)  
2 [<Publisher: Apress>]  

 

1 Python代码
2 >>> Publisher.objects.filter(name__contains="press")  
3 [<Publisher: Apress>]  
1 [python] view plain copy
2 >>> Publisher.objects.filter(name__contains="press")  
3 [<Publisher: Apress>] 

__contains部分会被Django翻译成LIKE语句

 

排序:

1 Python代码
2 >>> Publisher.objects.order_by("name")  
3 [<Publisher: Apress>, <Publisher: OReilly>

 

1 python] view plain copy
2 >>> Publisher.objects.order_by("name")  
3 [<Publisher: Apress>, <Publisher: OReilly>]  

 

 

相当于 order by name asc

 

1 Python代码
2 >>> Publisher.objects.order_by("-name")  
1 [python] view plain copy
2 >>> Publisher.objects.order_by("-name") 

 

加个负号相当于 order by name desc

 


限制返回数据:

 

 

1 Python代码
2 >>> Publisher.objects.order_by(name)[0]  
3 <Publisher: Apress>  
1 [python] view plain copy
2 >>> Publisher.objects.order_by(name)[0]  
3 <Publisher: Apress>

 

相当于 limit 1

 

1 Python代码
2 >>> Publisher.objects.order_by(name)[0:2]  
1 [python] view plain copy
2 >>> Publisher.objects.order_by(name)[0:2]  

相当于 OFFSET 0 LIMIT 2

 

4、更新

 

1 Python代码
2 >>> Publisher.objects.filter(id=52).update(name=Apress Publishing)  
1 [python] view plain copy
2 >>> Publisher.objects.filter(id=52).update(name=Apress Publishing)  

 

1 Python代码
2 >>> p = Publisher.objects.get(name=Apress) #先查询  
3 >>> p.name = Apress Publishing #更新  
4 >>> p.save()  #保存  
1 [python] view plain copy
2 >>> p = Publisher.objects.get(name=Apress) #先查询  
3 >>> p.name = Apress Publishing #更新  
4 >>> p.save()  #保存  

 

 

5、删除

1 Python代码
2 >>> p = Publisher.objects.get(name="O‘Reilly")  
3 >>> p.delete()  
1 [python] view plain copy
2 >>> p = Publisher.objects.get(name="O‘Reilly")  
3 >>> p.delete()  
1 Python代码
2 >>> Publisher.objects.filter(country=USA).delete() 
1 [python] view plain copy
2 >>> Publisher.objects.filter(country=USA).delete()  

 

django数据库基本操作-增删改查(tip)-基本