hand
_1_35_15
4
python3.X - Web - Django3.2.9
共43篇
python3.X - Web - Django3.2.9
返回栏目
0k
0.6k
0.1k
0.2k
0.1k
0.2k
6k
1k
6k
2k
2k
0.4k
0.3k
0.3k
1k
0.5k
3k
2k
0.6k
0.9k
1k
1k
3k
0.1k
0.3k
0.4k
0.4k
0.1k
0.3k
2k
1k
1k
1k
5k
1k
1k
0k
3k
2k
0k
0.1k
0.3k
0k
返回python3.X - Web - Django3.2.9栏目
作者:
贺及楼
成为作者
更新日期:2024-04-06 11:37:12
req = json.loads(request.body)
start_time = req.get("start_time")
end_time = req.get("end_time")
email = req.get("email")
display_name = req.get("display_name")
record_obj = record_table.objects
if start_time:
record_obj = record_obj.filter(record_time__gte=start_time)
if end_time:
record_obj = record_obj.filter(record_time__lte=end_time)
if email:
record_obj = record_obj.filter(email__icontains=email)
if display_name:
record_obj = record_obj.filter(display_name__icontains=display_name)
visit_record = list(record_obj.values())
分类 | 语句/返回 | 条数 | for循环 | pandasDF | 释义 |
---|---|---|---|---|---|
data = Book.objects.all() |
多条 | √ | √ | ||
data = Book.objects.values("r1").filter(r2='xx') |
多条 | √ | √ | ||
-> | [{'r1': 'd1'}, {'r1': 'd2'}, {'r1': 'd3'}] |
||||
data = Book.objects.values_list("r1").filter(r2='xx') |
多条 | √ | √ | ||
-> | [('d1',), ('d2',)] |
||||
data = Book.objects.values_list("A", "B").filter(r2='xx') |
多条 | √ | √ | ||
-> | [('a1','b1'), ('a2','b1')] |
||||
data = Book.objects.values_list("r1", flat=True).filter(r2='xx') |
多条 | √ | √ | ||
-> | ['d1', 'd2'] |
||||
data = Book.objects.get(id=1) |
1条 | √ | |||
data = Book.objects.filter(r2='xx') |
多条 | √ | √ | ||
data = Book.objects.filter().values() |
多条 | √ | √ | ||
data = Book.objects.exclude() |
多条 | √ | √ | 条件之外 | |
data = Book.objects.get_or_create() |
多条 | √ | √ | 无就 增+查 有就查 | |
data = Book.objects.order_by("-列") |
多条 | √ | √ | 排序 | |
print(data.query) |
多条 | - | - | 看sql语句 |
books = Author.objects.all()# 全部,多条返回数组,for循环取出
for book in books:
print(book.name)
方法 | 举例 |
---|---|
原生sq1的查询方法 | user.objects.raw("select * from user") |
基于ORM方法查询 | User.objects.filter(id=xx) |
方法名 | 描述 |
---|---|
User.objects.all() | 返回user表中的所有数据 |
user.objects.get(**filter) | 返回满足条件的数据(单条,没有数据则抛出异常) |
User.objects.filter(**filter) | 返回满足条件的数据(多条,没有数据则返回空数据) |
User.objects.all()/filter().exists() | 返回是否有对象,True False |
User.objects.all())/filter().count() | 返回获取到对象的数量 |
User.objects.all()/filter().exclude(**filter) | 返回的数据中排除满足**filter的 |
User.objects.filter().distinct("age") |
返回的对象中通过某个列去重 |
user.objects.filter().order_by("age") |
返回对象中通过age排序 |
dir(user.objects) | 查询其他方法 |
属性名 | 描述 | 举例 |
---|---|---|
__exact | 类似于sql中的like精准查找方法 | name__exact=正心 |
__iexact | 精准查找且忽略大小写 | name__iexact=正心 |
__contains | 模糊查找类似”like %正心%” | name__contains="正心" |
__icontains | 模糊查找且忽略大小写 | name__icontains="make" |
__gt | 大于 | age__gt=18 |
__gte | 大于等于 | age__gte=18 |
__lt | 小于 | age__lt=18 |
__lte | 小于等于 | age__lt=18 |
__isnull | 是否为空 | email__isnull=True |
__startswith | 以什么开头 | name__contains="make" |
__istartswith | 同上,且忽略大小写 | name__contains="make" |
__endswitch | 以什么结尾 | name__contains="make" |
__iendswitch | 同上,且忽略大小写 | name__contains="make" |
__in | 查询在表中的哪个数据 | name__in=[正心,make] |
latester = Book.objects.filter(r2='xx').latest('edit_time') # 最后的时间
big_time = latester.edit_time
print(big_time) # 获得最大时间
# sql是ORDER BY `book`.`edit_time` DESC LIMIT 1
# 速度很快
Django1.2以上就有latest()
Django从1.6起有了last()这个方法,可以依据主键直接取出最新的那个id
Django1.6起有一个earliest()最早、最小
result = book.objects.get(id=id)
result = {
'id': result.id,
'name': result.name,
'add_time': result.add_time.strftime('%Y-%m-%d %H:%M:%S'),
'update_time': result.update_time.strftime('%Y-%m-%d %H:%M:%S'),
}
python3.X - Web - Django3.2.9
整章节共43节
快分享给你的小伙伴吧 ~