Django---orm單表操作
阿新 • • 發佈:2019-02-10
單表操作
建立一張表,如下所示
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 | 大於等於 |