单表操作
建立一张表,如下所示
1|r&d
2|sales
3|financial
# 增
models.UserGroup.objects.create(title='sales')
# 删
models.UserGroup.objects.filter(id=3).delete()
# 改
models.UserGroup.objects.filter(id=1).update(title='r&d')
# 查
v = models.UserGroup.objects.all()
print(v) # <QuerySet [<UserGroup: UserGroup object>, <UserGroup: UserGroup object>, <UserGroup: UserGroup object>]>
print(v.first()) # UserGroup object
print(v.first().title) # r&d
print(v.last()) # UserGroup object
print(v.last().title) # financial
print(v.all()) # <QuerySet [<UserGroup: UserGroup object>, <UserGroup: UserGroup object>, <UserGroup: UserGroup object>]>
print(v.values()) # <QuerySet [{'id': 1, 'title': 'r&d'}, {'id': 2, 'title': 'sales'}, {'id': 3, 'title': 'financial'}]>
print(v.values()[0]) # {'id': 1, 'title': 'r&d'}
print(v.values_list()) # <QuerySet [(1, 'r&d'), (2, 'sales'), (3, 'financial')]>
print(v.values_list()[0]) # (1, 'r&d')
# 另外一种查询试音get,得到的是 一个对象, 只有查询到的数据,如果查询不到抛出异常,如果匹配到多条数据抛出异常
v = models.UserGroup.objects.get(id=1)
print(v) # UserGroup object
print(v.title) # r&d
# 使用双下滑线查询
v = models.UserGroup.objects.filter(id__gt=1) # 表示id>1
print(v) # <QuerySet [<UserGroup: UserGroup object>, <UserGroup: UserGroup object>]>
for row in v:
print(row.id, row.title)
"""
2 sales
3 financial
"""
关于双下滑线的应用
函数名 | 描述 |
---|---|
__lt | 小于 |
__lte | 小于等于 |
__gt | 大于 |
__gte | 大于等于 |