from django.shortcuts importrender,HttpResponsefrom app01 importmodels#Create your views here.
importjsondeftest(request):#models.BookType.objects.create(caption='技术')
#models.BookType.objects.create(caption='文学')
#models.BookType.objects.create(caption='动漫')
#models.BookType.objects.create(caption='男人装')
#models.Book.objects.create(name='文艺复兴',pages='100',price='40',pubdate='1992-11-2',book_type_id='1')
#models.Book.objects.create(name='解密',pages='80',price='10', pubdate='2016-6-10',book_type_id='2')
#models.Book.objects.create(name='刀锋',pages='50',price='3', pubdate='2014-02-16',book_type_id='2')
#models.Book.objects.create(name='查令十字路84号',pages='260',price='40',pubdate='1999-10-12',book_type_id='3')
#models.Book.objects.create(name='红楼',pages='1000',price='500', pubdate='1760-1-1',book_type_id='3')
#models.Book.objects.create(name='将夜',pages='2000',price='300', pubdate='2010-3-3',book_type_id='1')
#models.Book.objects.create(name='mysql从删库到跑路',pages='20',price='10',pubdate='1998-9-2',book_type_id='4')
#models.Book.objects.create(name='马克思主义',pages='50',price='100',pubdate='1937-3-3',book_type_id='2')
return HttpResponse('ok')importjsonfrom datetime importdatefrom datetime importdatetimefrom decimal importDecimalclassJsonCustomEncoder(json.JSONEncoder):defdefault(self, field):ifisinstance(field, datetime):return field.strftime('%Y-%m-%d %H:%M:%S')elifisinstance(field, date):return field.strftime('%Y-%m-%d')elifisinstance(field, Decimal):returnstr(field)else:returnjson.JSONEncoder.default(self, field)defindex(request):if request.method == 'POST':print(request.POST.get('post_data',None))
ret= {'status': False, 'message': '', 'data':None}try:
post_data= request.POST.get('post_data',None)
post_data_dict=json.loads(post_data)print(post_data_dict,type(post_data_dict))#{'name': ['11', 'sdf'],'price': ['11', 'sdf']}
#构造搜索条件
from django.db.models importQ
con=Q()for k,v inpost_data_dict.items():
q=Q()
q.connector= 'OR'
for item inv:print(v,type(v))
q.children.append((k, item))
con.add(q,'AND')"""ret = models.Book.objects.filter(con)
print(ret) # queryset,[对象]
from django.core import serializers
data = serializers.serialize("json", ret)
print(type(data),data)
# 字符串"""
"""# ret = models.Book.objects.filter(con).values('name','book_type__caption')# 列表里面以字典的形式
# #ret = models.Book.objects.filter(con).values_list('name', 'book_type__caption')# 列表里面以元组的形式
#
# li = list(ret)
# data = json.dumps(li)
# print(data,type(data))"""result= models.Book.objects.filter(con).values('name','price','pubdate','book_type__caption')#ret = models.Book.objects.filter(con).values_list('name', 'book_type__caption')
li=list(result)
ret['status'] =True
ret['data'] =liexceptException as e:
ret['message'] =str(e)
ret_str= json.dumps(ret, cls=JsonCustomEncoder)returnHttpResponse(ret_str)return render(request, 'index.html')