博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅

点击查看作者主页,了解更多项目!

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、毕业设计:2025年计算机专业毕业设计选题汇总(建议收藏)✅

2、最全计算机专业毕业设计选题大全(建议收藏)✅

1、项目介绍

技术栈:
Python语言、Django框架、MySQL数据库、Echarts可视化、HTML

2、项目界面

(1)新能源汽车数据列表
在这里插入图片描述

(2)里程与价格曲线分析

在这里插入图片描述

(3)里程与最低价分析

在这里插入图片描述

(4)汽车补贴排行榜分析

在这里插入图片描述

(5)价格区间分布

在这里插入图片描述

(6)里程与车型数量分布分析
在这里插入图片描述

(7)后台数据管理
在这里插入图片描述

3、项目说明

近年来,随着科技产业的发展,新能源汽车产业逐渐进入了快速发展阶段。我国的新能源汽车产业,在政府的大力支持下,经过多年的不断努力,新能源汽车在技术高度方面也有了明显上升,而且该产业的生产、销售、售后等体系也逐渐完善,在这大好的新能源汽车产业环境中,各个企业的竞争也逐渐增强,企业为了适应市场的需求,提高自身竞争实力,就要不断的掌握市场规律,才能在这个竞争环境中生存下来,因此,选择新能源汽车数据分析系统课题进行研究很有必要。
本论文旨在通过Python语言以及Django框架,结合Sqlite数据库实现新能源汽车数据分析系统。本新能源汽车数据分析系统主要实现管理员的登录、新能源电动汽车数据爬取并对异常数据进行处理,新能源电动汽车数据查看、纯电续航里程与价格分析、续航里程和最低价格分析、续航里程和最高价格分析、电动汽车补贴排行分析、各个价格区间车型数量分析、各个价格区间车型数量分析功能,通过可视化可以直观的了解系能源汽车的相关参数,便于新能源汽车企业及时掌握该产业的相关情况,改善自身不足,提高企业竞争能力。

关键词:新能源汽车;电动汽车;Python语言;Django框架;

4、核心代码


import re
from django.shortcuts import render, HttpResponse, redirect
from django.views.decorators.csrf import csrf_exempt
from django.db.models import F, Avg
from .models import *
from .get_car_data import *


# Create your views here.
def login(request):
    return render(request, 'login.html')


def logout(request):
    request.session.flush()
    return render(request, 'login.html')


def do_login(request):
    """登录验证"""
    if request.method == 'POST':
        body = request.POST
        user_account = body.get('user_account')
        password = body.get('password')
        try:
            user = UserAccount.objects.get(user_account=user_account, password=password)
        except Exception as e:
            data = {'login_result': '账号或密码错误'}
            return render(request, 'login.html', data)
        return redirect('/car_list')


# 列表
def car_list(request):
    data = NewEnergyCar.objects.filter()
    return render(request, 'car_list.html', {'data': data})


# 获取数据
def get_car_list(request):
    page = read_page()
    json_data = start_requests(page)
    data = parse_data(json_data)
    for rec in data:
        del rec['serie_id']
        del rec['energy_type']
        del rec['min_subsidy_price']
        del rec['max_subsidy_price']
        del rec['max_mix_energy_range']
        del rec['sale_status_sort']
        form1 = NewEnergyCar.objects.create(**rec)
        form1.save()
    data = NewEnergyCar.objects.filter().order_by('-id')
    return render(request, 'car_list.html', {'data': data})


@csrf_exempt
def car_price(request):
    context = {}
    return render(request, 'car_price.html', {'data': context})


def car_price_data(request):
    data = NewEnergyCar.objects.values_list('max_pure_energy_range').annotate(min_price=Avg('min_price'))
    context = {
        'car_data': [o[0] for o in data],
        'price_data': [o[1] for o in data],
    }
    return HttpResponse(json.dumps(context))


@csrf_exempt
def energy_range_min_price(request):
    context = {}
    return render(request, 'energy_range_min_price.html', {'data': context})


def energy_range_min_price_data(request):
    data = NewEnergyCar.objects.filter()
    serie_name = [re.sub('[a-zA-Z0-9]','', o.serie_name).replace(' ','').replace(':','')[:2] for o in data]
    serie_name = list(set(serie_name))
    serie_name = [o for o in serie_name if len(o)>1]
    series_data = []
    for rec in serie_name:
        line_data = [[o.max_pure_energy_range, o.min_price] for o in data if rec in o.serie_name]
        line = {
            'symbolSize': 6,
            'name': rec,
            'data': line_data,
            'type': 'scatter'
        }
        series_data.append(line)
    context = {
        'legend_data': serie_name,
        'series_data': series_data
    }
    print(context)
    return HttpResponse(json.dumps(context))


@csrf_exempt
def energy_range_max_price(request):
    context = {}
    return render(request, 'energy_range_max_price.html', {'data': context})


def energy_range_max_price_data(request):
    data = NewEnergyCar.objects.filter()
    serie_name = [re.sub('[a-zA-Z0-9]', '', o.serie_name).replace(' ', '').replace(':', '')[:2] for o in data]
    serie_name = list(set(serie_name))
    serie_name = [o for o in serie_name if len(o) > 1]
    series_data = []
    for rec in serie_name:
        line_data = [[o.max_pure_energy_range, o.max_price] for o in data if rec in o.serie_name]
        line = {
            'symbolSize': 6,
            'name': rec,
            'data': line_data,
            'type': 'scatter'
        }
        series_data.append(line)
    context = {
        'legend_data': serie_name,
        'series_data': series_data
    }
    print(context)
    return HttpResponse(json.dumps(context))


def car_subsidy(request):
    data = NewEnergyCar.objects.annotate(subsidy_amount=F('max_guide_price') - F('max_price')).filter(has_subsidy=1).order_by('-subsidy_amount')
    return render(request, 'car_subsidy.html', {'data': data})


@csrf_exempt
def car_price_bar(request):
    context = {}
    return render(request, 'car_price_bar.html', {'data': context})


def car_price_bar_data(request):
    labels = []
    series_data = []
    for i in range(5, 50, 5):
        data = NewEnergyCar.objects.filter(max_price__lte=i) & NewEnergyCar.objects.filter(max_price__gte=i-5)
        series_data.append(len(data))
        labels.append('{}-{}万'.format(str(i-5), str(i)))
    data = NewEnergyCar.objects.filter(max_price__gte=50)
    series_data.append(len(data))
    labels.append('50万以上')
    context = {
        'legend_data': labels,
        'series_data': series_data
    }
    return HttpResponse(json.dumps(context))

@csrf_exempt
def car_pure_energy_bar(request):
    context = {}
    return render(request, 'car_pure_energy_bar.html', {'data': context})


def car_pure_energy_bar_data(request):
    labels = []
    series_data = []
    for i in range(100, 600, 100):
        data = NewEnergyCar.objects.filter(max_pure_energy_range__lte=i) & NewEnergyCar.objects.filter(max_pure_energy_range__gte=i-100)
        series_data.append(len(data))
        labels.append('{}-{}公里'.format(str(i-100), str(i)))
    data = NewEnergyCar.objects.filter(max_pure_energy_range__gte=600)
    series_data.append(len(data))
    labels.append('600公里以上')
    context = {
        'legend_data': labels,
        'series_data': series_data
    }
    return HttpResponse(json.dumps(context))

🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌

5、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅

点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐