背景:基于可视化的巨大需求和成本因素,利用pyecharts Django的可视化方式显然是一个不错的选择
通过可视化,可以发现模式、关系和异常
环境:强迫症患者,以前使用最新版
Django:2.1.0
python:3.x(win10为3.7,Ubuntu为3.5 ) )。
操作系统环境:窗口S10和Ubuntu
1、Django安装:
Django是利用python开发的免费开源Web框架,可用于快速构建网站
1.1、安装Django
笔者喜欢采用pip安装方式:
Win10:pip installl Django
Ubuntu:(sudo ) pip安装django
1.2、检查安装是否成功
进入python环境:
导入django
django.VERSION
(2、1、0、‘final’、0 ) ) ) ) )。
如果显示相应的版本号,则表示安装成功。
2、创建新项目
Ubuntu在终端上输入以下命令: 窗口S10在cmd上运行)
django-adminstartprojectmysite #创建一个名为mysite的项目
注:如果django-admin不行,请使用django-admin.py
如果成功,将显示以下目录
将创建新的mysite目录,其中包含mysite目录。 此子目录mysite包含多个项目的设置settings.py文件、urls配置文件的总urls.py以及用于部署服务器的wsgi.py文件。 init.py是python包的目录结构所必需的,并且与调用相关
3、制作新的APP (APP )。 名字叫learn
进入我的站点目录,而不是我的站点/我的站点
python manage.pystartapplearn # learn是app的名称
随后,在mysite目录下添加了learn文件夹
4、环境布局
4.1、修改mysite/mysite/settings.py,如图所示
这里是为了向Django环境(即注册过程)中添加learn文件(即新的APP文件夹)
4.2、更换learn/view.py,如图所示
第一行: # coding:utf-8用于声明已编码为utf-8
第二行:部署HttpResponse是为了将内容返回到网页,就像Python上的print一样,但在这里,内容显示在网页上
对于自定义函数index (),其中第一个参数必须是request,它与从网页发送的请求有关,request变量包含get和post内容、用户浏览器、系统等信息
现在环境等完备,网页的显示内容也写出来了,怎么访问?
4.3、修改mysite/mysite/urls.py,添加部分内容
标记部分是新内容
fromlearnimportviewsaslearn _ views :用于部署learn文件夹中的views.py脚本
path (),learn_views.index ):views.py脚本,说明输入的只有IP和端口号(即http://127.0.0.1:8000/)时运行
扩展:
如图所示修改后
输入以下内容: 在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/cjdxc目录下,故进入该目录
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文件