首页 > 代码库 > 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操作