django orm机制总结

django orm机制总结

ID:13781753

大小:25.72 KB

页数:14页

时间:2018-07-24

django orm机制总结_第1页
django orm机制总结_第2页
django orm机制总结_第3页
django orm机制总结_第4页
django orm机制总结_第5页
资源描述:

《django orm机制总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录1.1.1生成查询1.1.2创建对象1.1.3保存修改的对象1.1.4保存ForeignKey和ManyToManyField字段1.1.5检索对象1.1.6检索所有的对象1.1.7过滤检索特定对象1.1.8链接过滤1.1.9过滤结果集是唯一 1.2.1结果集是延迟的 1.2.2其他的QuerySet方法1.2.3限制QuerySets1.2.4字段查找1.2.5跨关系查询1.2.6过滤器可参考模型字段1.2.7缓存查询集1.2.8比较对象1.2.9删除对象1.3.1一次修改多个对象1.3.2关系对象1.3.3One-to-many关系1.3.4Many-to-many关

2、系1.3.5One-to-one关系1.1.1生成查询你创建完数据模型,django会自动提供给你数据库抽象的API,可以创建、获取、修改、删除对象,本篇文档讲解如何使用API。我们参考下面模型,一个weblog:#博客classBlog(models.Model):name=models.CharField(max_length=100)tagline=models.TextField()def__unicode__(self):returnself.name#作者classAuthor(models.Model):name=models.CharField(max_len

3、gth=50)email=models.EmailField()def__unicode__(self):returnself.name#目录classEntry(models.Model):blog=models.ForeignKey(Blog)headline=models.CharField(max_length=255)body_text=models.TextField()pub_date=models.DateTimeField()authors=models.ManyToManyField(Author)n_comments=models.IntegerFiel

4、d()n_pingbacks=models.IntegerField()rating=models.IntegerField()def__unicode__(self):returnself.headline 1.1.2创建对象用python对象描述数据库表的数据,django使用一个直观的系统,一个模型类描述一个数据表,一个类的实例描述表的一条详细记录。使用模型的save()方法将对象创建到数据库。frommysite.blog.modelsimportBlogb=Blog(name='BeatlesBlog',tagline='AllthelatestBeatlesnew

5、s.')b.save()只有执行save方法时,django才会执行sql把对象写入数据库。1.1.3保存修改的对象保存修改仍然使用save()方法b5.name='Newname'b5.save()1.1.4保存ForeignKey和ManyToManyField字段cheese_blog=Blog.objects.get(name="CheddarTalk")entry.blog=cheese_blog#为ManyToManyField增加记录entry.save()joe=Author.objects.create(name="Joe")entry.authors.ad

6、d(joe)#为ForeignKey增加记录1.1.5检索对象从数据库里检索对象,可以通过模型的Manage来建立QuerySet,一个QuerySet表现为一个数据库中对象的结合,他可以有0个一个或多个过滤条件,在SQL里QuerySet相当于select语句用where或limit过滤。你通过模型的Manage来获取QuerySet,每个模型至少有一个Manage1.1.6检索所有的对象检索表中所有数据,最简单的方式是用all().all_entries=Entry.objects.all()1.1.7过滤检索特定对象检索过滤特定查询结果,有两个方法。filter(**k

7、wargs)返回一个新的匹配查询参数后的QuerySet exclude(**kwargs)返回一个新的不匹配查询参数后的QuerySetEntry.objects.filter(pub_date__year=2006)1.1.8链接过滤Entry.objects.filter(headline__startswith='What').exclude(pub_date__gte=datetime.now()).filter(pub_date__gte=datetime(2005,1,1))1.1.9过滤

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。