标签:imp 数据操作 集合 ref ret with error: erro 返回
1.一个模型类代表数据库中的一个表,一个模型类的实例代表这个数据库表中的一条特定的记录。
2.管理器和查询集。
>>>Blog.objects <django.db.models.manager.Manager object at ...> >>> b = Blog(name=‘Foo‘, tagline=‘Bar‘) >>> b.objects Traceback: ... AttributeError: "Manager isn‘t accessible via Blog instances."
3.创建、更改,并保存一个实例
from blog.models import Blog b = Blog(name=‘Beatles Blog‘, tagline=‘All the latest Beatles news.‘) b.save()
b.name = ‘New name‘
b.save()
注意:在调用b.save()时,Django才正真访问数据库。
也可以使用管理器的create方法,一步创建和保存。
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
from blog.models import Author joe = Author.objects.create(name="Joe") entry.authors.add(joe)
3.获取对象(大多数情况下,需要从数据库中查找对象时,会使用all()、 get()、filter() 和exclude()。 然而,这只是冰山一角;查询集方法的完整列表,请参见查询集API 参考https://docs.djangoproject.com/en/1.10/ref/models/querysets/。)
all_blogs = Blog.objects.all()
all()方法返回包含数据库中所有对象的一个查询集。
Entry.objects.filter(headline__startswith=‘What‘).exclude(pub_date__gte=datetime.date.today())
>>> q1 = Entry.objects.filter(headline__startswith="What") >>> q2 = q1.exclude(pub_date__gte=datetime.date.today()) >>> q3 = q1.filter(pub_date__gte=datetime.date.today())
Entry.objects.filter(pub_date__lte=‘2006-01-01‘) Entry.objects.get(headline__exact="Man bites dog") Blog.objects.get(name__iexact="beatles blog") Entry.objects.get(headline__contains=‘Lennon‘)
大约有二十多种查询的类型。查询条件中指定的字段必须是模型字段的名称。但有一个例外,对于ForeignKey你可以使用字段名加上_id 后缀。
Entry.objects.filter(blog_id=4)
one_blog = Blog.objects.get(pk=1)
如果没有结果满足查询,get() 将引发一个DoesNotExist 异常。类似地,如果有多条记录满足get() 的查询条件,Django 也将报错。这种情况将引发MultipleObjectsReturned
#切片 Blog.objects.all()[5:10] Blog.objects.all()[:10:2] #索引 Blog.objects.order_by(‘headline‘)[0]
通常,查询集 的切片返回一个新的查询集 —— 它不会执行查询。有一个例外,是如果你使用Python 切片语法中"step"参数。
标签:imp 数据操作 集合 ref ret with error: erro 返回
原文地址:http://www.cnblogs.com/pemp/p/6066727.html