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

osc_sqtwbty4 2021-01-23 12:41:21
Anaconda Mysql django pyecharts


疫情来袭,宅在家的我们不如学习用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,就可以成功看到你所部署的网站了,那么如何进一步对网站进行个性化设置(添加登录模块、添加修改图表、添加修改文字)或者是想实现其他的功能,可以关注公众号后续文章。至少走到这里,你已经开发了一个属于自己的疫情数据追踪网站。

图片


版权声明
本文为[osc_sqtwbty4]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4304002/blog/4921494

  1. Mandatory conversion of Python data type
  2. Django reported an error: 'key' ID 'not found in' xxx '. Choices are: xxx'
  3. Python 400 sets of large video, starting from the right direction to learn, a complete set to you
  4. 只需十四步:从零开始掌握Python机器学习(附资源)
  5. Just 14 steps: Master Python machine learning from scratch (resources attached)
  6. Python|文件读写
  7. 安利一个Python界神奇得网站
  8. Python | file reading and writing
  9. Amway is a marvelous website in Python world
  10. 第二热门语言:从入门到精通,Python数据科学简洁教程
  11. The second popular language: from introduction to mastery, python data science concise tutorial
  12. 以我的亲身经历,聊聊学python的流程,同时推荐学python的书
  13. With my own experience, I'd like to talk about the process of learning Python and recommend books for learning python
  14. 以我的亲身经历,聊聊学python的流程,同时推荐学python的书
  15. With my own experience, I'd like to talk about the process of learning Python and recommend books for learning python
  16. Django url 路由匹配过程
  17. Django URL routing matching process
  18. 强者一出,谁与争锋?与Python相比,C++的运行速度究竟有多快?
  19. Who will fight against the strong? How fast is C + + running compared with Python?
  20. python 学习体会
  21. Experience of learning Python
  22. python7、8章
  23. Chapter 7 and 8 of Python
  24. python bool和str转换
  25. python——循环(for循环、while循环)及练习
  26. python变量和常量命名、注释规范
  27. python自定义异常捕获异常处理异常
  28. python 类型转换与数值操作
  29. python 元组(tuple)和列表(list)区别
  30. 解决python tkinter 与 sleep 延迟问题
  31. python字符串截取操作
  32. Python bool and STR conversion
  33. Python -- loop (for loop, while loop) and Practice
  34. Specification for naming and annotating variables and constants in Python
  35. Python custom exception capture exception handling exception
  36. Python type conversion and numerical operation
  37. The difference between tuple and list in Python
  38. Solve the delay problem of Python Tkinter and sleep
  39. Python string interception operation
  40. Python 100天速成中文教程,GitHub标星7700
  41. Python 100 day quick Chinese course, GitHub standard star 7700
  42. 以我的親身經歷,聊聊學python的流程,同時推薦學python的書
  43. With my own experience, I'd like to talk about the process of learning Python and recommend books for learning python
  44. python爬虫获取起点中文网人气排行Top100(快速入门,新手必备!)
  45. Python crawler to get the starting point of Chinese network popularity ranking Top100 (quick start, novice necessary!)
  46. 【Python常用包】itertools
  47. Itertools
  48. (国内首发)最新python初学者上手练习
  49. (国内首发)最新python初学者上手练习
  50. (first in China) the latest practice for beginners of Python
  51. (first in China) the latest practice for beginners of Python
  52. (数据科学学习手札104)Python+Dash快速web应用开发——回调交互篇(上)
  53. (data science learning notes 104) Python + dash rapid web application development -- callback interaction (Part 1)
  54. (数据科学学习手札104)Python+Dash快速web应用开发——回调交互篇(上)
  55. (data science learning notes 104) Python + dash rapid web application development -- callback interaction (Part 1)
  56. (資料科學學習手札104)Python+Dash快速web應用開發——回撥互動篇(上)
  57. (materials science learning notes 104) Python + dash rapid web application development -- callback interaction (Part 1)
  58. Python OpenCV 图片高斯模糊
  59. Python OpenCV image Gaussian blur
  60. Stargan V2: converse image synthesis for multiple domains reading notes and Python code analysis