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

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

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

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

准备

  • [「必须」]一台服务器并配置好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等相关配置文件进行配置(包含数据库配置、表单设置、页面注册等),过程相对复杂,因此暂时可以不用去配置。「直接下载配置好的文件夹」直接整个上传到服务器覆盖掉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,就可以成功看到你所部署的网站了,那么如何进一步对网站进行个性化设置(添加登录模块、添加修改图表、添加修改文字)或者是想实现其他的功能,在完整版的开发教程中会进一步说明。至少走到这里,你已经开发了一个属于自己的疫情数据追踪网站。

====================================================================

欢迎关注我的专栏,将会不断更新数学/统计学/数据分析/深度学习/网站开发相关内容。

有任何疑问可以关注公众号:早起python

早起的学习小站​zhuanlan.zhihu.com

服务器可视化_疫情来袭,30分钟学会用python开发部署疫情可视化网站相关推荐

  1. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  2. python写软件实例-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  3. python编写程序-30分钟学会用Python编写简单程序

    参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方式修改它们. 了解构成有效Python标识符和表 ...

  4. Pyechart:30分钟学会pyecharts数据可视化

    30分钟学会pyecharts数据可视化 小红:你先跟我说说什么是pyecharts吧. 小明:Echarts 是一个由百度开源的数据可视化javascript库,凭借着良好的交互性,精巧的图表设计, ...

  5. pulsar 容量_[Pulsar系列] 10分钟学会Pulsar消息系统概念

    Apache Pulsar Pulsar是一个支持多租户的.高性能的服务与服务之间消息通讯的解决方案,最初由雅虎开发,现在由Apache软件基金会管理. Pulsar在Yahoo的生产环境运行了三年多 ...

  6. 【转】30分钟学会UML类图

    转自:30分钟学会UML类图 - 知乎 30分钟学会UML类图 肖继潮 UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作.一般说来,在UML图中,只要掌握类图.用例图.时序 ...

  7. 30 分钟学会 Flex 布局

    30 分钟学会 Flex 布局 关注公众号 风色年代(itfantasycc) 更多好玩的前端资料等你拿~~ 林东洲 30 分钟学会 Flex 布局 - 知乎 (zhihu.com) 为什么我要写这一 ...

  8. 30分钟学会EventBus3 0详解(二)(EventBus3 0的详细使用)(by星空武哥)

    转载声明原创地址:http://blog.csdn.net/lsyz0021/article/details/52094855 30分钟学会EventBus3.0详解(一)(引入和初始化EventBu ...

  9. 30分钟学会专利提案

    30分钟学会专利提案 预期效果 引起重视 掌握套路 激发灵感 分享内容 6个问题 1.专利.发明专利.交底书.申请书? 专利分为发明.实用新型和外观设计三种类型 授予发明专利应当具备三性:新颖性.创造 ...

最新文章

  1. RL之DQN:基于TF训练DQN模型玩“打砖块”游戏
  2. 项目管理系列之质量管理
  3. 万兆以太网测试仪应该具备什么功能
  4. 计算可能的编译结果数
  5. Mr.J-- jQuery学习笔记(三十)--属性操作方法(添加删除)
  6. 剑指offer (05):替换字符串中空格 (C++ Python 实现)
  7. R 绘制风洞实验数据曲线
  8. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递
  9. golang语言的类型
  10. 读EntityFramework.DynamicFilters源码_心得_示例演示02
  11. idea+java+selenium自动化测试环境搭建
  12. Win10投影到此电脑用不了
  13. 【iOS】UI基础Day2-笔记(毛玻璃、帧动画、音效等)
  14. 常见中文乱码问题解决方式
  15. 复旦大学教授肖仰华:ChatGPT 浪潮下,面向大模型如何做数据治理?
  16. Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)
  17. oracle 截取时间年或月
  18. 恩布企业即时通讯软件,协同办公平台发布V1.23版本
  19. HTML怎么把图片颜色加深,怎么把Photoshop的图片整体颜色加深?
  20. 0基础学会简易QQ版聊天对话功能(有完整实现代码哦)

热门文章

  1. 模板方法在Spring事务中的应用
  2. 公用表表达式(CTE)的递归调用
  3. Android 读取文件内容
  4. Java中判断String不为空的问题
  5. Python学到什么程度可以面试工作?
  6. Python中的支持向量机SVM的使用(有实例项目给的地址)
  7. php.ini中关于Session的配置
  8. 京东三级列表页持续架构优化—Golang+Lua(OpenResty)最佳实践
  9. PHP自动加载spl_autoload_register()
  10. Goland如何断点调试Debug