欢迎来到天天文库
浏览记录
ID:37013306
大小:45.00 KB
页数:7页
时间:2019-05-12
《pythondjango数据库查询方法总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、pythondjango数据库查询方法总结__exact精确等于like'aaa'__iexact精确等于忽略大小写ilike'aaa'__contains包含like'%aaa%'__icontains包含忽略大小写ilike'%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。__gt大于__gte大于等于__lt小于__lte小于等于__in存在于一个list范围内__startswith以...开头__istartswith以...开头忽略大小写__e
2、ndswith以...结尾__iendswith以...结尾,忽略大小写__range在...范围内__year日期字段的年份__month日期字段的月份__day日期字段的日__isnull=True/False__isnull=True与__exact=None的区别classBlog(models.Model):name=models.CharField(max_length=100)tagline=models.TextField()def__unicode__(self):returnse
3、lf.nameclassAuthor(models.Model):name=models.CharField(max_length=50)email=models.EmailField()def__unicode__(self):returnself.nameclassEntry(models.Model):blog=models.ForeignKey(Blog)headline=models.CharField(max_length=255)body_text=models.TextField()
4、pub_date=models.DateTimeField()authors=models.ManyToManyField(Author)def__unicode__(self):returnself.headline这是model,有blog,author,以及entry;其中entry分别与blog与author表关联,entry与blog表是通过外键(models.ForeignKey())相连,属于一对多的关系,即一个entry对应多个blog,entry与author是多对多的关系,通过m
5、odles.ManyToManyField()实现。一、插入数据库,用save()方法实现,如下:>>>frommysite.blog.modelsimportBlog>>>b=Blog(name='BeatlesBlog',tagline='AllthelatestBeatlesnews.')>>>b.save()二、更新数据库,也用save()方法实现,如下:>>b5.name='Newname'>>b5.save()保存外键和多对多关系的字段,如下例子:更新外键字段和普通的字段一样,只要指定一
6、个对象的正确类型。>>>cheese_blog=Blog.objects.get(name="CheddarTalk")>>>entry.blog=cheese_blog>>>entry.save()更新多对多字段时又一点不太一样,使用add()方法添加相关联的字段的值。>>joe=Author.objects.create(name="Joe")>>entry.authors.add(joe)三、检索对象>>>Blog.objects7、robjectat...>>>>b=Blog(name='Foo',tagline='Bar')>>>b.objectsTraceback:...AttributeError:"Managerisn'taccessibleviaBloginstances."1、检索所有的对象>>>all_entries=Entry.objects.all()使用all()方法返回数据库中的所有对象。2、检索特定的对象使用以下两个方法:fileter(**kwargs)返回一个与参数匹配的QuerySet,相当于等于8、(=).exclude(**kwargs)返回一个与参数不匹配的QuerySet,相当于不等于(!=)。Entry.objects.filter(pub_date__year=2006)不使用Entry.objects.all().filter(pub_date__year=2006),虽然也能运行,all()最好再获取所有的对象时使用。上面的例子等同于的sql语句:slect*fromentrywherepub_date_year='2006'链接过滤器:>>>En
7、robjectat...>>>>b=Blog(name='Foo',tagline='Bar')>>>b.objectsTraceback:...AttributeError:"Managerisn'taccessibleviaBloginstances."1、检索所有的对象>>>all_entries=Entry.objects.all()使用all()方法返回数据库中的所有对象。2、检索特定的对象使用以下两个方法:fileter(**kwargs)返回一个与参数匹配的QuerySet,相当于等于
8、(=).exclude(**kwargs)返回一个与参数不匹配的QuerySet,相当于不等于(!=)。Entry.objects.filter(pub_date__year=2006)不使用Entry.objects.all().filter(pub_date__year=2006),虽然也能运行,all()最好再获取所有的对象时使用。上面的例子等同于的sql语句:slect*fromentrywherepub_date_year='2006'链接过滤器:>>>En
此文档下载收益归作者所有