疫情来袭,宅在家的我们不如学习用python如何开发部署一个疫情实时追踪可视化页面,还可以定制你家乡专属的可视化图表。先来看看效果吧
首页效果图
数据查询效果图
可以看到,既能实现数据可视化,也能实现数据查询等功能。关键的是从开发到部署最快只要30分钟就能上线!那我们开始吧。
准备
-
[「必须」]一台服务器并配置好anaconda与mysql。如果还没有服务器的小伙伴可以看我之前文章的购买并配置自己的云服务器
-
一台电脑并配置好mysql。可以看之前文章centos如何配置mysql
-
基础编程知识
-
软件:navicat、filezilla (之前文章都有介绍哦)
-
python相关:requests(数据爬取)、pyecharts(数据可视化)、Django
开始
本次开发的需求很明确,简单说来就是三步
-
爬取数据
-
数据可视化
-
将可视化的结果部署到服务器
那么上面的前两步可以翻阅我前几篇文章,都已详细的说明如何从互联网上取得数据并利用pyecharts进行可视化。那么我假设你已经写好了可视化的程序,在使用pyecharts进行可视化的最后,使用
.render(\'map1.html\')#意思将图片转换为html格式 名称为map1.html
将我们需要展示的地图、饼图等生成为html格式保存起来,方便我们之后嵌入网页中。之后就交给「Django」吧。
安装Django及需要的模块
首先在服务器端分别执行下面的代码安装Django及数据库相关的模块
#安装Django
pip install django
#数据库相关模块,如果报错也没关系
pip install pymysql
pip install mysqlclient
因为我们使用的是mysql,所以在后面的Django的同步数据库中有一步会报错,因为是快速部署,我们直接提前修改相关文件解决报错。用filezilla连接到你的远程服务器,如果你是按照我文章里面配置anaconda的话,打开以下路径
/root/anaconda3/lib/python3.7/site-packages/django/db/backends/mysql
找到base.py注释以下内容
if version < (1, 3, 13):
raise ImproperlyConfigured(\'mysqlclient 1.3.13 or newer is required; you have %s.\' % Database.__version__)
再打开这个文件夹中的operations.py,修改146行左右,把decode改为encode
query = query.decode(errors=\'replace\')
完成以上两个步骤之后再把修改后的文件覆盖传输到原来的文件夹中。
配置Django
现在ssh连接上你的服务器,在安装好Django之后,执行下面代码:
django-admin startproject djtest
意思是创建了一个名为djtest的Django项目,不出意外的话,在filezilla里刷新目录会多出一个文件夹为djtest,然后执行
cd djtest
进入该文件夹,再执行
python manage.py startapp web
之后刷新该文件夹,也会多出一个web文件夹。正常情况下,需要对文件夹里的settings.py等相关配置文件进行配置(包含数据库配置、表单设置、页面注册等),过程相对复杂,因此暂时可以不用去配置。
「关注公众号:早起python 回复Django 获取配置好的整个文件夹」直接整个上传到服务器覆盖掉djtest文件夹。
但是也没有完全能够偷懒,还是需要你完成几步,
-
覆盖完成之后需要下载里面的settings.py文件,修改里面的数据库密码为你之前配置数据库设置的密码。然后上传覆盖掉原来的。
-
将static文件夹中的map1.html,mp2.html替换为你自己刚刚生成的你所关注的地区的html文件覆盖上传。
之后使用navicat连接上自己的远程数据库,按照下面步骤创建一个名为djtest的数据库
之后执行。
python manage.py migrate
至此,已经完成99%了,只差最后一步,执行
nohup python manage.py runserver 0.0.0.0:8000 &
再去阿里云里面按照之前文章里面说的方法,将8000端口添加到安全组里面即可。
此时,随便找个浏览器输入你的ip:8000,就可以成功看到你所部署的网站了,那么如何进一步对网站进行个性化设置(添加登录模块、添加修改图表、添加修改文字)或者是想实现其他的功能,可以关注公众号后续文章。至少走到这里,你已经开发了一个属于自己的疫情数据追踪网站。