django 的orm的一些操作
def dbtest(req):
##插入记录
p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',
city='Berkeley', state_province='CA', country='U.S.A.',
website='http://www.apress.com/')
p1.save() ##保存插入记录(没有调用save时,数据将不会被保存)
print p1.id
p1.name = 'Apress Publishing'
p1.save() ##保存更新记录
p2 = Publisher.objects.create(name="O'Reilly",
address='10 Fawcett St.', city='Cambridge',
state_province='MA', country='U.S.A.',
website='http://www.oreilly.com/')
##查询记录与过滤
publisher_list = Publisher.objects.all()
print publisher_list
publisher_list = Publisher.objects.filter(name='Apress')
print publisher_list
publisher_list = Publisher.objects.filter(country="U.S.A.", state_province="CA")
Publisher.objects.filter(name__contains="press")
##icontains(大小写无关的LIKE),startswith和endswith(以什么开始和结尾), 还有range(SQLBETWEEN查询)
publisher = Publisher.objects.get(name="Apress") ##如果结果是多个对象,会导致抛出异常,没有返回结果也会抛出异常,通常用try处理
Publisher.objects.order_by("name") ##排序
Publisher.objects.filter(country="U.S.A.").order_by("-name")#以 name字段降序排列
Publisher.objects.order_by('name')[0]#限制数据,等同于limit,结果将是排序后的第一条数据
##更新
p = Publisher.objects.get(name='Apress')
p.name = 'Apress Publishing'
p.save()#保存数据
Publisher.objects.filter(id=52).update(name='Apress Publishing')#将id=52的这条数据的name改为Apress Publishing
Publisher.objects.all().update(country='USA')
##删除
p = Publisher.objects.get(name="O'Reilly")
p.delete()#删除数据
Publisher.objects.filter(country='USA').delete()#删除数据
Publisher.objects.all().delete()#删除所有数据