日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django 聚合查询

發布時間:2024/1/23 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django 聚合查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聚合查詢是做數據分析的數據庫基礎。通常使用聚合函數完成聚合查詢:
Mysql聚類函數
Count 計數
Sum 求和
Avg 求平均數
Max最大
Min最小
django也有相似的操作,通常django和聚類查詢和order_by,group_by
在django當中排序查詢是order_by
分組查詢是annotate,分組查詢通常寫在查詢的尾部。
Django聚類查詢的例子

Django使用聚類方法,需要通過aggregate方法

def cart(request):#購物車頁面user_id=request.COOKIES.get("user_id")goods_list=Cart.objects.filter(user_id=user_id).order_by("-id")if request.method=="POST":#cart頁提交訂單post_data=request.POSTcart_data=[]#收集前端傳遞過來的商品cart_ids=[]for k,v in post_data.items():if k.startswith("goods_"):#判斷傳過來的訂單idprint(v,"v",k,"k")cart_data.append(Cart.objects.get(id=int(v)))cart_ids.append(int(v))goods_count=sum([int(i.goods_number) for i in cart_data])#提交過來的數據總的數量#goods_total=sum([int(i.goods_total) for i in cart_data])#訂單的總價**goods_total=Cart.objects.filter(id__in=cart_ids).aggregate(Sum("goods_total"))#得到一個字典**goods_total=goods_total["goods_total__sum"]#goods_store=([str(i.goods_store) for i in cart_data])#保存訂單order=Order()order.order_id=setOrderId(str(user_id),str(goods_count),"2")#訂單中有多個商品或者多個店鋪,使用goods_count來代替商品id,使用2代表店鋪idorder.goods_count=goods_countorder.order_user=Buyer.objects.get(id=user_id)order.order_price=goods_totalorder.order_status=1order.save()#保存訂單詳情#這里的detail是購物車里的數據實例,不是商品的實例for detail in cart_data:order_detail=OrderDetail()order_detail.order_id=order#order是一條訂單數據order_detail.goods_id = detail.goods_idorder_detail.goods_name = detail.goods_nameorder_detail.goods_price = detail.goods_priceorder_detail.goods_number = detail.goods_numberorder_detail.goods_total = detail.goods_totalorder_detail.goods_store = detail.goods_storeorder_detail.goods_image = detail.goods_pictureorder_detail.save()url="/buyer/place_order/?order_id=%s"%order.idreturn HttpResponseRedirect(url)return render(request,"buyer/cart.html",locals())

總結

以上是生活随笔為你收集整理的Django 聚合查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。