views_基础方法

class MyView(View):

def get(self, requests):
"""
查询集:

# 查询姐相当于列表,支持正值切片,索引,for等等
# 查询集对数据库进行优化,会缓存结果
# 惰性查询
# 链式调用,性能优化

"""

# one_obj = Projects.objects.create(name='项目1', leader='李白', desc='nb项目')
# one_obj = Projects.objects.create(name='项目4', leader='王维', desc='nb项目4')
# one_data = Projects.objects.get(id=2)
# one_data = Projects.objects.all()

"""filter:查询集"""
# one_qs = Projects.objects.filter(leader='李白')
# one_qs = Projects.objects.exclude(id=2)
# one_qs = Projects.objects.filter(id__gt=2)
# one_qs = Projects.objects.filter(id__gte=2)
# one_qs = Projects.objects.filter(id__in=[1, 3])
# one_qs = Projects.objects.filter(leader__startswith='杜')
# one_qs = Projects.objects.filter(leader__istartswith='杜')
# one_qs = Projects.objects.filter(name__contains='2')
# i: 忽略大小写
# one_qs = Projects.objects.filter(name__icontains='2')
# one_qs = Projects.objects.filter(id__gte=2)
# one_qs = Projects.objects.filter(id__in=[1, 3])

"""
多个条件(与的关系):filter(desc__contains='nb', leader__startswith='李')
链式查询:与上方查询结果一致 filter(desc__contains='nb').filter(leader__startswith='李')

Q: 或 one_qs = Projects.objects.filter(Q(name__contains=1) | Q(leader__startswith='白'))
Q: 与 one_qs = Projects.objects.filter(Q(name__contains=1) & Q(leader__startswith='白'))
"""
# one_qs = Projects.objects.filter(desc__contains='nb', leader__startswith='李')
# one_qs = Projects.objects.filter(desc__contains='nb').filter(leader__startswith='李')
# one_qs = Projects.objects.filter(desc__contains='nb').exclude(leader__startswith='白')
# one_qs = Projects.objects.filter(Q(name__contains=1) | Q(leader__startswith='白'))
# one_list = []
# for i in one_qs:
# one_dic = {
# 'name': i.name,
# 'leader': i.leader,
# 'desc': i.desc,
# }
# one_list.append(one_dic)

"""
关联查询:

用子表信息查询父表数据:one_qs = Projects.objects.filter(interfaces__tester='测试3')
用父表信息查询子表数据:one_qs = InterFaces.objects.filter(project__name__contains=2)
"""
# one_qs = InterFaces.objects.filter(project__leader__contains='李')
# one_qs = InterFaces.objects.filter(project__name__contains='项目')
# one_qs = Projects.objects.filter(interfaces__name='接口2')
# one_qs = Projects.objects.filter(interfaces__tester__startswith='测试')
# print(one_qs.count())
# print(len(one_qs))
# print(one_qs.first())
# print(one_qs.last())
# print(one_qs.exists())
# one_list = []
# for i in one_qs:
# one_dic = {
# 'id': i.id,
# 'name': i.name,
# # 'leader': leader,
# 'tester': i.tester,
# # 'desc': i.desc,
# }
# one_list.append(one_dic)
#
# return JsonResponse(one_list, safe=False)
# return JsonResponse('', safe=False)

# one_qs = Projects.objects.get(pk=1)
# one_qs.leader = '苏轼'
# one_qs.save()
# one_dic = {
# 'id': one_qs.id,
# 'name': one_qs.name,
# 'leader': one_qs.leader,
# }

# one_qs = Projects.objects.filter()
# print(one_qs.values())
# < QuerySet[{'id': 1, 'name': '项目1', 'leader': '苏轼', 'desc': 'nb项目1',
# 'create_time': datetime.datetime(2020, 12, 27, 13, 28, 20, 801110,tzinfo= < UTC >), 'update_time':
# datetime.datetime(2020, 12, 29, 15, 19, 7, 391951,tzinfo= < UTC >)}, {'id': 2,......

# print(one_qs.values_list())
# [(1, '项目1', '苏轼', 'nb项目1', datetime.datetime(2020, 12, 27, 13, 28, 20, 801110, tzinfo= < UTC >),
# datetime.datetime(2020, 12, 29, 15, 19, 7, 391951, tzinfo= < UTC >)),......

# print(one_qs.values_list('id').order_by('id'))
# < QuerySet[(1,), (2,), (3,), (4,)] >

# print(one_qs.values_list('id', flat=True).order_by('id'))
# < QuerySet[1, 2, 3, 4] >

"""
raw:
可执行原生sql语句,性能更优
"""
# one_qs = Projects.objects.raw('select name, leader from tb_project ')
# print(one_qs)

# one_qs = Projects.objects.aggregate(Count('id'))
# print(type(one_qs), one_qs)

# return JsonResponse(one_dic)
return JsonResponse('', safe=False)
posted @ 2020-12-30 21:41  zxy_ang  阅读(152)  评论(0)    收藏  举报