python django实例_python 之 Django 小案例

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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值