@require_GET
def show(request):
“”"
根据项目名称检索项目信息
:param request:
:return:
# 返回数据格式:
# 无数据:{“status_code”:200,“cata”:{“count”:0,“Posts”:null}}
# 有数据:{“status_code”:200,“data”:{“count”:1,“posts”:
# [{“name”:“Shop”,“principal”:“大饼”, “environment”:{“测试环境”:“http://dabing.com”}}]}}
“”"
name = request.GET.get(‘name’)http://yezishuju.com/
if name:
# 1,queryset类型的读取方式与字典类似,但并非字典,它内部的值都是OBJECT对象。那么JSON是无法序列化对象的。
# 2,利用values()和values_list()方法,将queryset转换成字典和列表形式的存储方式。PS:这样还不行,还有一步要做。
# 3,再将转换完的queryset转换成list列表。 注意:上面的转换不是转换成字典或列表,而是字典和列表的数据存储形式。
# 4,这样,通过JsonResponse就可以序列化了,重要一点:必须加入safe=False 参数。(因为咱们序列化的是一个列表)
items = models.Project.objects.values().filter(name__icontains=f'{name.strip()}')
else:
items = models.Project.objects.values().all()
items = list(items)
data = {'status_code': 200, 'data': {'Count': len(items), 'Posts': items}}
return JsonResponse(data, safe=False)