【python可視化方案】pyecharts + Django 架構

來源:互聯網
上載者:User

標籤:src   主機   python環境   lan   版本   新版   python2   host   tap   

背景:基於對於可視化的巨大需求以及成本因素,利用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檔案

【python可視化方案】pyecharts + Django 架構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.