【python可视化方案】pyecharts + Django 框架

背景:基于对于可视化的巨大需求以及成本因素,利用pyecharts + Django 的可视化方式,显然是一种比较优的选择
通过可视化可寻找:模式、关系和异常
 
环境:强迫症患者,历来都是用最新版本
Django:2.1.0
python:3.x (win10是3.7, Ubuntu是3.5)
操作系统环境:win10与 Ubuntu
 
1、Django安装:
Django是利用python开发的免费开源的Web框架,可用于快速搭建网站
1.1、安装Django
笔者喜欢采用pip安装方式:
Win10:pip installl Django
Ubuntu:sudo) pip install Django
 
1.2、检验是否安装成功
进入python环境:
>>> import django
>>> django.VERSION
(2, 1, 0, 'final', 0)
如果能看见相应的版本号,则证明安装成功。
 
 
2、新建一个项目
Ubuntu在终端输入以下命令(Win10则在cmd操作)
django-admin startproject mysite #创建一个项目,名称为mysite
注:如果 django-admin 不行,请用 django-admin.py
成功后可以看见如下目录
新建了一个 mysite 目录,其中还有一个 mysite 目录,这个子目录 mysite 中是一些项目的设置 settings.py 文件,总的urls配置文件 urls.py 以及部署服务器时用到的 wsgi.py 文件, __init__.py 是python包的目录结构必须的,与调用有关
 
 
3、新建一个应用(app),名称learn
进入mysite目录,而非mysite/mysite
python manage.py startapp learn # learn 是一个app的名称
随后在mysite目录下多了一个learn文件夹
 
 
4、环境配置
4.1、修改 mysite/mysite/settings.py,如图所示
此处是为了将learn文件(即新建的APP)夹加入Django环境,即注册程序
 
4.2、替换learn/view.py,如图所示
第一行: # coding:utf-8 是为了声明编码为utf-8
第二行:引入HttpResponse,是用来向网页返回内容,就像Python中的print,只不过此处是把内容显示到网页上
关于自定义函数index(),此处第一个参数必须是request,与网页发送来的请求有关,request变量里面包含get或post的内容,用户浏览器,系统等信息在里面
 
现在环境等都搭建好了,网页显示内容也写好了,但是如何访问?
4.3、修改mysite/mysite/urls.py,新增部分内容
标记部分即为新增内容
from learn import views as learn_views:是为了引入learn文件夹中的views.py脚本
path('', learn_views.index):说明输入的只有IP与端口号(即http://127.0.0.1:8000/)时执行,views.py脚本
拓展:
若修改为如图所示
则说明输入如下内容,http://127.0.0.1:8000/add0/则执行views00.py脚本,这也就是所谓的接口方案
 
 
4.4、运行python manage.py runserver
若显示如图所示,则说明成功了
打开浏览器访问:http://127.0.0.1:8000/
则会出现如下页面(因为我现在已经将其部署到了服务器所以输入的是其他内容,可忽略此处,后续会说明)
 
 
现在部署的仅提供本机访问,接下来将如何实现部署到服务器上,供所有主机访问
5、部署到服务器,供所有主机访问
部署到服务器同部署到本地,前期的操作完全一致,可先参照前面步骤完成1-4步
但是部署到服务器还需要做以下工作
5.1、开通端口,这个需要自己开通,假设开通的端口号为8000
 
5.2、开通访问权限
修改 mysite/mysite/settings.py中的ALLOWED_HOSTS=[] 为
即允许所有主机访问,当然也可以只添加允许访问的主机
其后在mysite目录下执行以下命令
python manage.py runserver 0.0.0.0:8000
此时在本地主机输入IP:8000,即IP+端口号,即可返回如下内容
 
 
 
期间踩过的坑:
1、python2与python3同时存在
我用的 Ubuntu,里面既有python2也有python3,且默认使用python2,但是我需要默认使用python3
解决方案:
whereis python #找到python位置
我的位置是在/usr/bin目录下,故进入该目录
ll |grep python
发现其中默认python2是通过软连接实现即python指向python2,故而解决方案是删除相应的软连接
新建软连接python -> pyhton3.5
 
2、报错:DisallowedHostat / Invalid HTTP_HOST header: '198.211.99.20'. You may need to addu'198.211.99.20' to ALLOWED_HOSTS
这是因为没有修改mysite/mysite/settings.py中的ALLOWED_HOSTS=[] 开通权限导致的问题
 
3、mysite下目录结构应该
有部分文件因为版本的问题,可能存在差异,但是mysite下一定有的三个文件或者目录为:learn(APP名称)、manage.py、mysite
 
4、
按照提示执行相应操作即可
 
 
重要内容:
1、是否所有代码都必须写入mysite/learn/views.py脚本中,如果存在多个脚本,怎么处理
解决方案,祥看步骤4.1-4.3
 
2、如果脚本本身生成的是HTML怎么处理
即pyecharts生成的本就是html此时怎么展示
利用如下框架
from django.http import HttpResponse
from django.template.loader import get_template
import datetime
template = get_template('learn/templates/index.html')
html = template.render({'time':now})
return HttpResponse(html)
注意:此处需要自己在learn目录下新建一个templates文件夹,用于存放生成的html文件

猜你喜欢

转载自www.cnblogs.com/hot-pot/p/9452193.html