新能源汽车可视化大屏数据展示系列之六数据存储到RDS

举报
tea_year 发表于 2024/12/23 11:07:45 2024/12/23
【摘要】 新能源汽车大屏可视化实训技术通过集成Django、Vue和ECharts、DataV等技术,实现了对新能源汽车数据的全面展示与分析。系统利用爬虫技术获取各大品牌的销售数据,存储于MySQL数据库中,并通过ECharts进行多维度的可视化展示,包括车系销量排名、投诉信息、降价排行等。该技术不仅提升了数据的直观性和可操作性,还为市场研究、企业决策提供了重要支持,推动了新能源汽车行业的智能化发展。 

任务目标:

           将temp.csv文件的数据,导入到RDS数据库中

操作步骤:

          1.过滤无效数据

          2.测试

           3.导入数据到RDS

实践步骤:

          1.在spider.py文件上添加3行指令

#要存储文件,需要引入配置文件
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "carShow.settings")
django.setup()
from myApp.models import CarInfo

         2.创建数据清理的函数

    #dropna 删除包含缺失值(NaN)的行;drop_duplicates  删除重复的行
    def clear_csv(self):
        df=pd.read_csv('./temp.csv')
        df.dropna(inplace=True)
        df.drop_duplicates(inplace=True)
        # print('总数据量为%d'%df.shape[0])
        return df.values

      3.调用测试之

#主程序的调用;spiderObj就是spider类的对象/变量
if __name__ == '__main__':
    spiderObj=spider()
    #调用一下init(),用来生成temp.csv文件
    # spiderObj.init()
    #调用main()函数;
    # spiderObj.main()

    #测试一个总条数的函数
    # spiderObj.clear_csv()

     测试结果如下:

D:\pythondemo\carProject2\.venv\Scripts\python.exe D:\pythondemo\carProject2\spiderMain\spider.py 
总数据量为236


      4.增加保存到RDS的函数

    #定义一个函数,保存数据到mysql
    def save_to_sql(self):
        data=self.clear_csv()
        for car in data:
            CarInfo.objects.create(
                brand=car[0],
                carName=car[1],
                carImg=car[2],
                saleVolume=car[3],
                price=car[4],
                manufacturer=car[5],
                rank=car[6],
                carModel=car[7],
                energyType=car[8],
                marketTime=car[9],
                insure=car[10]
            )


     5.测试执行,在调用处增加函数调用

#调用一下执行函数
spiderObj.save_to_sql()

 效果如下图所示

3333333333.png

    6..多学一招【os.envin】

environ是一个字符串所对应环境的映像对象,也就是我们常说的系统环境变量

在看下os.environ提供的是什么东西。


import os

for i, v in enumerate(os.environ.items(), 1):
    print(i, v)


('PATH', '/Users/zhangjin/2018/Django_2018/venv/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin')
('PYTHONPATH', '/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend:/Users/zhangjin/2018/Django_2018')
('SHELL', '/bin/bash')
('PYTHONIOENCODING', 'UTF-8')
('VERSIONER_PYTHON_PREFER_32_BIT', 'no')
('USER', 'zhangjin')
('TMPDIR', '/var/folders/nr/0d3xpgl16cb036rk2_gh1jr00000gn/T/')
('PS1', '(venv) ')
('SSH_AUTH_SOCK', '/private/tmp/com.apple.launchd.OKzHAUzpN0/Listeners')
('VIRTUAL_ENV', '/Users/zhangjin/2018/Django_2018/venv')
('XPC_FLAGS', '0x0')
('PYTHONUNBUFFERED', '1')
('VERSIONER_PYTHON_VERSION', '2.7')
('__CF_USER_TEXT_ENCODING', '0x1F5:0x19:0x34')
('Apple_PubSub_Socket_Render', '/private/tmp/com.apple.launchd.JFjmO3gaCM/Render')
('LOGNAME', 'zhangjin')
('LC_CTYPE', 'zh_CN.UTF-8')
('XPC_SERVICE_NAME', 'com.jetbrains.pycharm.19716')
('PWD', '/Users/zhangjin/2018/Django_2018/login')
('PYCHARM_HOSTED', '1')
('HOME', '/Users/zhangjin')
('PYCHARM_MATPLOTLIB_PORT', '49205')
('__PYVENV_LAUNCHER__', '/Users/zhangjin/2018/Django_2018/venv/bin/python')


对比一下,是不是发现系统环境变量都在这里面了,这就对了,python提供的os.environ是一个类字典的数据类型对象,存放着所有系统相关的环境变量,所以如果要在你的python程序中操作环境变量时就需要对这个对象进行操作了。

在学习Django的setting文件时,有这么一段话:

指定配置文件

DJANGO_SETTINGS_MODULE

使用Django时要通知Django当前使用的是哪个配置文件。可以改变环境变量 DJANGO_SETTINGS_MODULE 实现这一点。

当我们使用manage.py运行起本地的web服务器时,为了让Django知道使用哪个配置文件,就指定了DJANGO_SETTINGS_MODULE的环境变量的路径,我们看下manage.py

指定配置文件

DJANGO_SETTINGS_MODULE

使用Django时要通知Django当前使用的是哪个配置文件。可以改变环境变量 DJANGO_SETTINGS_MODULE 实现这一点。

当我们使用manage.py运行起本地的web服务器时,为了让Django知道使用哪个配置文件,就指定了DJANGO_SETTINGS_MODULE的环境变量的路径,我们看下manage.py

由于不同的系统环境变量命名是有所不同的,比如在类Unix系统家目录的环境变量是的os.environ['HOME'] 而在windows中就是'HOMEPATH'了,

又比如linux下的USER在windows下面对应的就是USERNAME.

总结这些差异来说,他们都是各自系统的本身特性造成的,比如你用的是gnome版的ubuntu,那么key里面就会多出一条['GNOME_DESKTOP_SESSION_ID'].


key字段详解

windows:


os.environ['HOMEPATH']:当前用户主目录。
os.environ['TEMP']:临时目录路径。
os.environ[PATHEXT']:可执行文件。
os.environ['SYSTEMROOT']:系统主目录。
os.environ['LOGONSERVER']:机器名。
os.environ['PROMPT']:设置提示符。


 

django 解决: You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.c

在文件开始加上

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djblog.settings")

注意一定要加在load model.xxx之前

目的是为了任何一个django project中的*.py文件都能够正常的使用项目中的数据模型操作。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。