def order_data(request): # 图1——年销售统计 orders = Order.objects.all().values("order_date","sales","quantity","profit") data = {"order_date":[],"sales":[],"quantity":[],"profit":[]} year_data = {} # 按年份分组,求年销售 for order in orders: if order['order_date'] is not None: order_date_str = order['order_date'].strftime('%Y-%m-%d') #将其转换成字符型 order_year = datetime.strptime(order_date_str, '%Y-%m-%d').date().strftime('%Y') if order_year == '2015': continue if order_year not in year_data: year_data[order_year] = {"sales": 0, "quantity": 0, "profit": 0} # 利润存在空值,存入字典,新键值对 year_data[order_year]["sales"] += order["sales"] year_data[order_year]["quantity"] += order["quantity"] year_data[order_year]["profit"] += order["profit"] for year, year_sales in year_data.items(): data['order_date'].append(year) data['sales'].append(year_sales["sales"]) data['quantity'].append(year_sales["quantity"]) data['profit'].append(year_sales["profit"]) return JsonResponse(data) def order_chart(request): return render(request,'index.html')
时间: 2024-04-05 13:32:05 浏览: 61
bintree_inorder_rec.rar_rec
这段代码定义了两个Django视图函数。第一个视图函数"order_data"用于获取订单数据并将其按年份进行汇总统计,返回JSON格式的数据。第二个视图函数"order_chart"返回一个HTML页面,用于展示订单数据的图表。
需要注意的是,第二个视图函数需要在HTML模板中定义所需的图表组件,例如ECharts等。在HTML模板中,你可以使用JavaScript代码来调用ECharts组件,并通过AJAX异步请求获取"order_data"视图函数返回的JSON数据来绘制图表。
阅读全文