疫情来袭,30分钟学会用python开发部署疫情可视化网站

2019—nCov疫情实时数据可视化——30分钟python快速版

疫情来袭,宅在家不如学习用python如何开发并部署一个疫情实时追踪可视化页面。页面预览

本文将介绍如何使用python开发网站,「因为是30分钟快速搭建部署版,所以将省去所有Django中配置项文件的配置过程说明」,详细的配置过程将在专栏下「完整版Django开发网站」中进行说明。这也是我推荐的一般学习python的步骤:「通过快速上手一个项目,先学会套路并将程序运行起来,然后再回过头看相关的开发文档」

因为用Django开发部署网站这一套流程我已经走过很多遍了,所以基本上是站在上帝视角尽可能的去简化的写这个文档,里面的所有软件在我的历史文章都有介绍。当然对于小白来说肯定还会有地方看不懂,或者哪一步报了我没有写下来的异常,有任何问题,欢迎提出那么我们开始吧。

准备

  • [「必须」]一台服务器并配置好anaconda与mysql。如果还没有服务器的小伙伴可以看我的历史文章
  • 一台电脑并配置好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')

完成以上两个步骤之后再把修改后的文件覆盖传输到原来的文件夹中。

「当然上面的修改步骤可以偷懒节省时间,关注公众号:早起python 回复Django 获取修改好的文件直接覆盖。」

配置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,就可以成功看到你所部署的网站了,那么如何进一步对网站进行个性化设置(添加登录模块、添加修改图表、添加修改文字)或者是想实现其他的功能,在完整版的开发教程中会进一步说明。至少走到这里,你已经开发了一个属于自己的疫情数据追踪网站。

发布了10 篇原创文章 · 获赞 13 · 访问量 5672

猜你喜欢

转载自blog.csdn.net/weixin_41846769/article/details/104281405
今日推荐