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

来源:互联网 发布:php异步执行 编辑:程序博客网 时间:2024/04/19 03:14

原文地址


1、插入数据

Python代码
  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、查询

Python代码
  1. >>> Publisher.objects.all()  
  2. [<Publisher: Apress>, <Publisher: O'Reilly>]  

获取单个对象:

Python代码
  1. >>> Publisher.objects.get(name="Apress")  
  2. <Publisher: Apress>  
如果结果是多个对象或者没有返回结果则会抛出异常


3、条件

筛选:

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

Python代码
  1. >>> Publisher.objects.filter(name__contains="press")  
  2. [<Publisher: Apress>]  
__contains部分会被Django翻译成LIKE语句

排序:

Python代码
  1. >>> Publisher.objects.order_by("name")  
  2. [<Publisher: Apress>, <Publisher: O'Reilly>]  

相当于 order by name asc

Python代码
  1. >>> Publisher.objects.order_by("-name")  
加个负号相当于 order by name desc


限制返回数据:

Python代码
  1. >>> Publisher.objects.order_by('name')[0]  
  2. <Publisher: Apress>  
相当于 limit 1

Python代码
  1. >>> Publisher.objects.order_by('name')[0:2]  
相当于 OFFSET 0 LIMIT 2

4、更新

Python代码
  1. >>> Publisher.objects.filter(id=52).update(name='Apress Publishing')  

Python代码
  1. >>> p = Publisher.objects.get(name='Apress'#先查询  
  2. >>> p.name = 'Apress Publishing' #更新  
  3. >>> p.save()  #保存  

5、删除

Python代码
  1. >>> p = Publisher.objects.get(name="O'Reilly")  
  2. >>> p.delete()  

Python代码
  1. >>> Publisher.objects.filter(country='USA').delete()