数据概览是在views视图里面定义接口get_pie,学历分布使用已知的学历要求列表,采用Django _icontains模糊查询方法,对学历要求字段进行筛选并计数,并通过生成字典的方式加入edu_data中。 薪资分布是通过定义薪资的区间分布,再使用for循环结合re正则匹配出最高薪资,并且的values字典里加入字段salary_1用来保存正则提取出的最高薪资,如果匹配失败则作为无效数据,置salary_1为0,并通过多个列表筛选的方式生成数据字典并加入salary_data中。 最后使用return JsonResponse()方法将数据返回给前端的ajax请求,前端收到后台返回的数据后,则使用ECharts进行数据可视化。
时间: 2024-02-29 21:51:34 浏览: 61
PIE-Face-Database-of-CMU.zip_CMU PIE数据库_CMU pie 人脸库_CMU_PIE人脸库_P
5星 · 资源好评率100%
好的,如果您需要在 Django 中实现数据概览接口,可以按照以下步骤进行:
1. 在 views.py 文件中定义一个名为 get_data_overview 的函数,该函数将接收一个 HTTP 请求,并返回一个 JSON 格式的响应,其中包含了数据概览所需要的数据。以下是一个示例代码:
```python
import re
from django.http import JsonResponse
from .models import Job
def get_data_overview(request):
# 获取学历要求列表和薪资区间分布
edu_list = ["本科", "硕士", "博士", "大专", "中专"]
salary_ranges = [(0, 5), (5, 10), (10, 15), (15, 20), (20, 30), (30, 50), (50, 100)]
# 统计学历分布
edu_data = {}
for edu in edu_list:
count = Job.objects.filter(edu_requirement__icontains=edu).count()
edu_data[edu] = count
# 统计薪资分布
salary_data = {}
for salary_range in salary_ranges:
salary_1_list = []
for job in Job.objects.filter(salary__icontains="{}-".format(salary_range[0])):
match = re.search(r"\d+", job.salary)
if match:
salary_1 = int(match.group())
else:
salary_1 = 0
salary_1_list.append(salary_1)
salary_1_list = list(filter(lambda x: x > 0, salary_1_list))
salary_1_list = list(filter(lambda x: x >= salary_range[0] and x < salary_range[1], salary_1_list))
salary_data["{}-{}".format(salary_range[0], salary_range[1])] = len(salary_1_list)
# 返回数据
data = {"edu_data": edu_data, "salary_data": salary_data}
return JsonResponse(data)
```
2. 在 urls.py 文件中定义一个名为 data_overview 的 URL 路径,将其映射到 get_data_overview 视图函数。以下是一个示例代码:
```python
from django.urls import path
from . import views
urlpatterns = [
path('data_overview/', views.get_data_overview, name='data_overview'),
# 其他 URL 路径
]
```
3. 在前端页面中,使用 Ajax 技术向后台发送一个 GET 请求,获取数据概览数据,并使用 ECharts 进行数据可视化。以下是一个示例代码:
```javascript
$.ajax({
url: '/data_overview/',
type: 'GET',
dataType: 'json',
success: function(data) {
// 在这里使用 ECharts 进行数据可视化
// data.edu_data 存储了学历分布数据
// data.salary_data 存储了薪资分布数据
}
});
```
阅读全文