问题:使用sqlite3作为数据库, 如何查询数据
方法:
查询所有数据
Person.objects.all()
切片操作,获取10个人,不支持负索引,切片可以节约内存
Person.objects.all()[:10]
根据name查询
Person.objects.get(name = name)
get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到 filter
Person.objects.filter(name = "abc")
名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件
Person.objects.filter(name__iexact = "abc")
名称中包含 "abc"的人
Person.objects.filter(name__contains = "abc")
名称中包含 "abc",且abc不区分大小写
Person.objects.filter(name__icontains = "abc")
正则表达式查询
Person.objects.filter(name__regex = "^abc")
正则表达式不区分大小写
Person.objects.filter(name__iregex = "^abc")
排除包含 WZ 的Person对象
Person.objects.exclude(name__contains = "WZ")
找出名称含有abc, 但是排除年龄是23岁的
Person.objects.filter(name__contains="abc").exclude(age = 23)
参考:
https://www.shiyanlou.com/courses/774/labs/2632/document