首页 > 代码库 > django模板的shell操作
django模板的shell操作
from django.db import models class Person(models.Model): name = models.CharField(max_length=30) age = models.IntegerField() def __unicode__(self): # 在Python3中使用 def __str__(self) return self.name
$python manage.py shell
>>>from app01.models import Person
新建一个对象的几种方法:
1. Person.objects.create(name="zhangsan", age=23)
2. p = Person(naem="lisi", age=22)
p.save()
3. p = Person(name="wangwu")
p.age = 20
p.save()
4. Person.objects.get_or_create(name="djw", age=25)
这种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,第二个为True或者False,新建时返回的是True,已经存在时返回False
获取对象有以下方法:
1. Person.objects.all()
2. Person.objects.all()[:10]
3. Person.objects.all(name=name)
get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter
4. Person.objects.filter(name=‘abc‘) #等于Person.objects.filter(name__exact=‘abc‘)名称严格等于‘abc‘的人
5. Person.objects.filter(name__iexact=‘abc‘) #名称为abc到那时不区分大小写,可以找到ABC,Abc,aBC,这些都符合条件
6. Person.objects.filter(name__contains=‘abc‘) #名称中包含‘abc‘的人
7. Person.objects.filter(name__icontains=‘abc‘) #名称中包含‘abc‘,且abc不区分大小写
8. Person.objects.filter(name__regex="^abc") #正则表达式查询
9. Person.objects.filter(name__iregex=‘^abc‘) #正则表达式不区分大小写
filter是找出满足条件的,当然也有排除符合某条件的
10. Person.objects.exclude(name__contains=‘wz‘) #排除包含wz的Person对象
11. Person.objects.filter(name__contains=‘abc‘).exclude(age=23) #找出名称含有abc,但是排除年龄是23岁的
django模板的shell操作